낑깡의 게임 프로그래밍 도전기

C# delegate 본문

카테고리 없음

C# delegate

낑깡겜플밍 2023. 11. 8. 21:41
반응형
SMALL

delegate 대리자 : 함수를 대신 실행 시켜주는 놈
특정 매개 변수 목록 및 반환 형식이 있는 함수에 대한 참조

 

삼학연산자

둘을 비교해서 참이면 앞에 꺼를 넣고 거짓이면 뒤에 꺼를 넣는 것

 

() => { }; 람다:무명매서드

 

델리게이트 형식

포인터랑 다름점 체인이 가능하다 즉 여러 콜렉션을 담을 수 있다.

깊은복사

 

클래스지만 예외적으로 스트링은 깊은 복사가 일어나는것처럼 냬도 깊은 복사가 일어난다
박싱 언박싱

박싱은 올라갈수록 모호해지니 언박싱해져서 실체와 함

엄청난 데이터화의 증거??

 

재사용이 될거같지도 않고 선언하고 하는 작업이 너무 비효율적이라 판단될때 람다식을 쓰게 된다.

 

람다. 익명애서드, 무명매서드라고도 부른다.

이름이 없으면 추적이 힘들다. 그래서 추적이 되야하는 곳에 쓰면 안된다, 그래서 재사용성이 필요없고 추적이 필요없는 곳에서 쓴다.

기본틀
예. 아래것을 위에처럼 정리

 

그런데 리턴타입이 없는 델리게이트는 많이 쓸거같아서 선배 개발자가 만들어 놓은것이 Action이다.

*액션은 리턴타입이 없다! 리턴타입이 무조건 void

제네릭을 써서 매개변수도 쓸수있긴하다 최대 16개까지.

그래서 나온게 Func이다

Func은 리턴타입이 int인것
쭉쭉쓰면 앞은 매개변수 뒤는 리턴타입

 

람다를 통해서 껍데기를 쒸워서 전달 해 줄 수 도 있음

 

함수의 인자로서 함수가 들어감
함수에 인자호서 함수가 드감 콜백

콜백 : 함수를 매개변수로 받는 형태
지정자 : 대리자가 매개변수로 들어가 있는 것
지정자는 곧 콜백함수이다. 

인풋필드 첵스트 받는 기능을 쓰기 위한 예제
딕셔너리랑 콜백같이쓰기
하지만 액션은 함수가 아니라 대리자라고 하는 변수라서 인보크와 같이 쓸 수 없다
이벤트 아규먼트
업캐스팅을 할 수도 있으니 이렇게 아규먼트를 상속해주는게 좋은것 같다

 

반응형
LIST