study/코딩 7

[c# 개념] 코루틴(Coroutine)

만약 이런 코드가 있다고 하자 그러면 여기서 제어권의 이동은 다음과 같다. Start() 시작 Start() -> LoopA() LoopA() -> Start() Start() -> LoopB() LoopB() -> Start() Start() 끝 ​ 이때 LoopA()와 LoopB()를 동시에 실행시킬 수 있는 기능이 코루틴이다! (일종의 병렬 처리라고 생각하면 된다, 실제로 병렬은 아니고 속임수임) ​ 위에서 작성한 코드를 코루틴으로 바꿔보자! 이때 코드를 실행하게 되면 1초에 한번씩 i와 x의 값이 동시에 번갈아가면서 커지는게 출력이 된다! ​ ​ 만약 코루틴을 중단하고 싶다면? ​ 방법1) public class Test : MonoBehaviour { Coroutine myCoroutine1; ..

study/코딩 2023.05.30

[c# 개념] Action과 Func

우선 아래와 같이 생긴 델리게이트를 선언했다고 하자 delegate void MyDelegate(T1 a, T2 b); MyDelegate myDelegate; 델리게이트를 선언하기 위해서는 이렇게 두줄로 선언을 해줘야 한다. 만약 무명메소드로 잠깐 사용하거나 델리게이트 형태가 많은 경우 모두 선언해줘야 하는데, 이럴대는 불편할 수 밖에 없다. 이러한 불편함을 없애기 위해서 Action과 Func delegate를 사용할 수 있다! 💡Action와 Func를 사용하는 경우 System namespace를 사용해야함. Action과 Func의 차이는 반환하는 값이 있느냐 없느냐로 나눌 수 있다. -> 반환값이 없을 경우(void)에는 Action을 사용하고, 반환값이 있는 경우에는 Func를 사용한다. ​..

study/코딩 2023.05.30

[c# 개념] 람다식(Lambda Expression)

1. 람다식이란? => 연산자는 람다식을 표현 무명 메서드와 비슷하게 무명 함수(anonymous function)을 표현하는데 사용됨 람다식은 아래와 같이 입력 파라미터(0개~N개)를 => 연산자 왼쪽에, 실행 문장들을 => 연산자 오른쪽에 둠 람다식 문법 : (입력 파라미터) => { 실행문장 블럭; } ex. 하나의 문자열을 받아 들여 메세지 박스를 띄우기 str => { MessageBox.Show(str); } ​ 2. 사용 예시 this.button1.Click += (sender, e) => ((Button)sender).BackColor = Color.Red; 위에 있는 코드는 무명 메서드를 람다식으로 변형한 예시! 한번 쓰이는 간단한 이벤트 핸들러를 람다식으로 표현한 것이다.

study/코딩 2023.05.30

[c# 개념] enum(열거형)

1. enum 이란? 마이크로소프트 C# 가이드에 enum을 쳐보면 이런 정의가 나온다. enum(열거형)은 기본 정수 숫자 형식의 명명된 상수 집합에 의해 정의되는 값 형식이다. Microsoft .NET C# 가이드 응? 전혀 이해가 안된다. ​ 더 쉽게,,, 얘기하자면 열거형은 열거형 상수(constant)를 표현하기 위한 것으로 이를 이용하면 상수 숫자들을 보다 의미있는 단어들로 표현할 수 있어서 프로그램을 읽기 쉽게 해준다! ​ enum의 각 요소는 별도의 지정없이는 첫번째 요소가 0, 두번째 요소가 1 ... 등과 같이 1씩 증가된 값들을 할당받는다. (임의 지정도 가능함) ​ ​ 2. enum 사용 예시 그냥 Meat랑 Menu의 enum 을 만들어봤다. 사용자가 Meat에서는 0/1/2를 ..

study/코딩 2023.05.30

[c# 개념] Dictionary<> 중복 안되게 값 추가

[폼 구성 계획] datagridview로 dictionary에 값이 저장/변경될때마다 바로 보이게 함. datagridview에 중복이 일어나면 표시되게(log형식) 함. 버튼을 누르면 난수값을 생성하여 dictionary의 key값으로 저장하고 value는 "new"를 가짐. [코드] ​ 폼이 로드 될때 기본적으로 몇개의 값은 dictionary에 저장 public Form1() { InitializeComponent(); key.Add(0, "zero"); key.Add(1, "one"); key.Add(2, "two"); key.Add(3, "three"); foreach (var item in key) { dataGridView1.Rows.Add(item.Key, item.Value); } } ..

study/코딩 2023.05.30