• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

section1 7-stat 강좌에서 delegate를 사용하신 이유가 궁금합니다.

24.03.17 20:33 작성 조회수 153

0

public delegate void ValueChangedHandler(Stat stat, float currentValue, float prevValue);

public event ValueChangedHandler onValueChanged;
public event Action<Stat, float, float> onValueChanged;

 

위와 같이 delegate를 사용하셨는데, 아래 action 대신 사용하면 어떤 차이가 있는지, 또는 특별한 이유가 있는지 궁금합니다.

답변 1

답변을 작성해보세요.

5

수강해주셔서 감사합니다.

차이는 없습니다. delegate를 정의하냐, Action을 사용하냐는 순전히 프로그래머의 취향 차이입니다. delegate 정의 시에 약간의 이점이라고 한다면 멤버 변수나 함수의 인자로 같은 형태의 대리자를 여러 개 만들 때 일일이 Generic Type을 지정해주지 않아도 되니 Coding이 약간 편해질 수 있다는 점인데, 이점이라고 보기도 애매한 부분이죠.

저 같은 경우 명시적인걸 좋아하는지라 event를 만들 때는 delegate, 함수의 인자로 쓸 때는 Action을 쓰는걸 선호합니다. 전 C++에선 Map 같은 Container도 보통 Type Define을 해서 사용하는걸 선호합니다.
그리고 Unreal Engine의 경우 Action이 존재하지 않고 delegate만 존재하다보니 양쪽 Engine을 모두 다루는 입장에서 개인적으로 Coding Convention을 어느 정도 통일시키기 위해서 쓰는 것이기도 합니다. 이게 특별한 이유라면 특별한 이유가 될 것 같습니다.

감사합니다.