woojin++
C# 기초다지기 - 델리게이트 본문

비쥬얼 코드에서 사용한 델리게이트이다.
애초에 유니티에서는 델리게이트를 class 밖에서 선언하지않는다.
유니티에 적용된 델리게이트 사용법을 살펴보자. (물론 유니티에서는 델리게이트보다는 익명함수 Action을 많이 사용한다)
대리자 체인


class Program 의 static void Main(string[] args) 부분

어느 유튜브 강사의 유니티 델리게이트 강의 영상이다

Test 라는 Class 안에 델리게이트를 선언 그리고 Start 함수에 체인을 건다. 보통 이런식으로 많이 사용한다.
당연히 유니티에서 각 클래스의 생성자는 없다. 왜냐 스크립트는 컴포넌트 된 상태이고, 하이라키에 이미 객체로 존재하기때문이다. (요건 기본)
대리자 콜백
Test 클래스 내부


AscendCompare 와 DescendCompare 이 두 메서드를 매개변수로 사용하고싶을때 콜백을 사용한다.
class Program 의 static void Main(string[] args) 부분

Test클래스 인스터스 후, 또 Test안의 델리데이트를 인스턴스하여(생략 해도 된다), 매개변수를 사용한다.
이건 인터넷에 델리게이트 콜백 예시를 수정한것이다 . 인터넷에 돌아다는 예시를 보면 그냥 using와 class 사이에 델리게이트 선언 후 사용한다.


요건 익명함수
이벤트 사용



Test 클래스에 이벤트를 선언
TestEvent 인스턴스 생성, Test의 public static event SomethingHappen 이벤트에 TestEvent 메서드 MYHandler메서드 추가
Test 클래스 인스턴스 생성 , Test클래스 Dosomething메서드 실행
그러면 Dosomething 메서드 실행 => { SomethingHappen("안녕") } = > 이벤트에 등록한 MYHandler("안녕") 메서드 실행 = > Console.WriteLine(message) 실행 => "안녕" 출력


등록한 이벤트 삭제 후 다시 실행 Null 에러



생략 가능


델리게이트 선언없이 func 로 처리
'C#' 카테고리의 다른 글
| C# 기초 다지기 - foreach문과 IEnumerablem, IEnumerator 사용의도 (0) | 2022.01.28 |
|---|---|
| C# 기초 다지기 - 업 , 다운 캐스팅 (0) | 2022.01.28 |
| C# 기초다지기 - 인터페이스와 추상 클래스(메서드 , 추상 메서드) (0) | 2022.01.28 |
| C# 기초 다지기 - 클래스 와 구조체의 차이점 (0) | 2022.01.28 |
| C# 기초다지기 - 맴버변수와 지역변수 (0) | 2022.01.26 |