-
[유니티] 17강 함수 간결화 및 호출 시점[유니티] 기본 2022. 5. 31. 01:12728x90
1. Generic
제너릭은 이미 파일 입출력 코드에서 사용했다.(13강, 14강 참고)
앞서 본 코드는 원하는 리턴 타입을 받고 싶을때 사용했고, 이번에는 함수 호출시 임의의 타입을 파라미터로 사용 예다.
2. 델리게이트
C/C++ 함수포인트와 거의 같다.
typedef int (*funcDelegate)(int a, int b); // c/c++
delegate int funcDelegate(int a, int b); // c#
c/c++에서는 static 함수만 되지만, c#은 모두 허용한다.
신기하다. 그냥 감탄사가 나왔다. 정말 된다!!
지면이 부족해서 안 넣었지만, 다른 객체에 있는 함수도 똑같은 원리로 구동된다.
3. Event
C/C++ 함수포인트와 비슷하지만, EventHander가 호출될때 인자값 2개로 정해져있음이 다르다.
object - 호출하는 객체가 대부분일것 같다.
EventArgs - 상속을 받아서 넘어갈 데이터를 꾸미면 된다.
제약이 많지만, 이걸 사용하는 이유는
eh = null;
eh += new EventHander(func0);
eh += new EventHander(func1);
eh(null, EventArgs.Empty);를 호출하면 등록한 함수들이 모두 실행된다.
보통 저급 언어로 개발하는 사람이라면 이런 특이한 구조의 프로그래밍을 하지 않아서, 당장 쓸일은 없을거 같다.
앞으로 알면 유용할지도 모르겠다.
3. 람다
c000은 위에서의 2.델리게이트이다.
c111은 델리게이트에 함수를 등록하는게 아니라, 바로 실행문장을 등록이 가능하다.
4. Func, Action 대리자
-끗-
'[유니티] 기본' 카테고리의 다른 글
[유니티] 19강 풀 메모리2 (0) 2022.06.02 [유니티] 18강 풀 메모리1 (0) 2022.06.02 [유니티] 16강 기타(namespace, 접근제한, 속성, 참조, 추상, 가상) (0) 2022.05.31 [유니티] 15강 전처리기와 코루틴 (0) 2022.05.31 [유니티] 14강 파일 입출력2 (0) 2022.05.31