6/18 델리게이트, Action, Func, event 키워드
댓글 0
댓글을 작성하려면 로그인이 필요합니다.
아직 댓글이 없습니다. 첫 번째 댓글을 작성해보세요!
댓글을 작성하려면 로그인이 필요합니다.
아직 댓글이 없습니다. 첫 번째 댓글을 작성해보세요!
★ Delagate는 메서드(들)을/를 참조할 수 있는 타입, Action은 반환값이 없는 Delagate, Func는 반환값이 있는 Delegate, Predicate는 반환값이 bool인 Delegate
Action, Func, Predicate는 매개변수/반환타입이 같은 메서드들만 등록할 수 있으며, Func의 경우 마지막으로 추가한 메서드의 결과를 반환한다.
델리게이트와 일반 메서드 호출의 차이는 무엇인가요? -> 메서드는 코드의 집합, 델리게이트는 메서드를 변수로 가지는 타입입니다 -> 선생님 답변 : 델리게이트는 함수를 저장하는 변수의 역할을 하기 때문에, 상황에 따라서 다른 함수(들)을/를 호출 할 수 있다.
Action과 Func의 차이를 설명하세요. -> Action은 반환값이 있는 델리게이트, Func는 반환값이 있는 델리게이트 입니다. (현재 반환값 int) -> 선생님 답변 : Action은 반환값이 없고, Func는 반환값이 없다.
event를 쓰면 delegate보다 어떤 점이 안전해지나요? -> event 키워드를 사용하면 외부에서 해당 델리게이트에 구독/해지만 가능해주고 호출 및 초기화는 클래스 내부에서만 가능해집니다. -> 선생님 답변 : event를 사용하게 되면, 외부에서 접근하여 구독/구독해지 는 가능하나, Invoke하거나 여타 다른 수정이 불가능하기 때문에 외부에서 임의로 수정하는 것을 막을 수 있다.
onDamage?.Invoke(30)에서 ?는 어떤 역할인가요? -> 델리게이트 onDamage에 등록된 메서드가 하나도 없다면(onDamage가 null이라면) onDamage를 실행하지 않도록 해줍니다. 즉 ?는 null 체크를 해주는 역할을 합니다. -> 선생님 답변 : null이라면 뒤의 내용을 무시함. (null 체크를 해준다.)
람다식으로 등록한 이벤트를 해지하려면 어떻게 해야 하나요? -> 람다식으로 등록한 이벤트는 해지할 수 없습니다. 람다식은 익명 메서드이기 때문에 델리게이트에 등록된 메서드와 동일한 람다식을 작성하더라도 서로 다른 메서드로 인식되어 해지할 수 없습니다. -> 선생님 답변 : 못함. 미리 특정 델리게이트로 저장해둔 후 등록하던가, 혹은 함수로 만들어져 있어야함.
XR을 활용한 게임 개발 3기(유니티) 수강생입니다. 곧 수료 하지만 앞으로 이곳에 가끔 저의 개발 경험이 나 지식 기록할까 합니다. 더 나아가 이 사이트가 제 개인위키의 역할을 할 수 있으면 좋겠습니다. 한국 게임 시장을 흔들겠습니다

게임 광고 수익은 단순히 광고를 붙이는 것이 아니라, 여러 광고 네트워크를 경쟁시켜 가장 높은 수익을 만드는 구조입니다.

안녕하세요. 플밍 4기 입니다. 게임 개발을 배우기 전 네트워크 엔지니어 도메인에서 익히고 배웠던 네트워크 이론에 대한 기초 입니다. 학습에 도움이 되길 바라며 공유 드립니다.