인프런 커뮤니티 질문&답변

SeoArc님의 프로필 이미지

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문

Delegate 권장 호출 방식이 궁금합니다.

해결된 질문

작성

·

170

0

Delegate를 여러 방법으로 호출할 수 있다고 알고있는데요. 질문이 터무니없을 수 있지만,,

어떤 생성/호출방식이 권장되는지, 아니면 상황에 따라 각각 호출하는 방식의 사용빈도가 동일한지 궁금합니다.

그게 아니면 delegate의 직접적인 호출은 아예 사용되지 않고 event로 감싸서 호출하는 방식만 권장되는지 궁금합니다.

delegate int OnClicked();

static void ButtonPressed(OnClicked clickedFunction) { clickedFunction(); }

OnClicked clicked = new OnClicked(TestDelegate); -> 생성1

OnClicked clicked = TestDelegate; -> 생성2

clicked(); -> 호출1

ButtonPressed(clicked); -> 호출2

답변 2

1

Rookiss님의 프로필 이미지
Rookiss
지식공유자

사실 코드의 작성  방법은 팀마다 상이해서
딱히 어떤 권장 방법이 있다고 하기 애매합니다.
특히 게임쪽은 많은 인원이 빠르게 작업하고 사양 변경도 심한 편이라
경험상 코드 컨벤션이 그렇게 엄격한 편도 아닌 것 같습니다.
(즉 잘  돌아가면 그만이니 각자 코딩 스타일은 알아서~~ 느낌이 강합니다)

delegate의 상위호환인 event가 있으니 그걸 사용하는게 권장되지만
그러지 않는다고 또 특별히 문제되는 것도 아닙니다.
다만 delegate를 손수 만드는 것보다는, 
Func나 Action을 사용하는 쪽이 낫지 않을까 싶습니다.

0

SeoArc님의 프로필 이미지
SeoArc
질문자

잘 이해했습니다. 좋은 답변 해주셔서 감사합니다!

SeoArc님의 프로필 이미지

작성한 질문수

질문하기