Notice
Recent Posts
Recent Comments
Link
«   2026/06   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

woojin++

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

C#

C# 기초다지기 - 델리게이트

곰바구니 2022. 1. 29. 00:44

 

비쥬얼 코드에서 사용한 델리게이트이다.

애초에 유니티에서는 델리게이트를 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 로 처리