작성한 질문수
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Packet Generator #5
작성
·
3.6K
1
action 에 이벤트를 할당하고 Invoke 해서 실행시키는데 이게 그냥 실행시키는거랑 어떤 차이가 있을까요?
Action<PacketSession, IPacket> action = null;if (_handler.TryGetValue(p.Protocol, out action)){ //1 action.Invoke(session, p); //2 action(session, p);}
답변 2
4
action.Invoke는 action?.Invoke와 같이 action 콜백이 null인지 검사하고 null이 아닐때에만 Invoke 되도록 사용하고자 할 때 많이 사용해요.
action(); 는 action이 null이면 NullReferenceException을 뱉기 때문에 위험하죠. 이전에 null 검사를 해야하는데 그렇게 되면 코드가 쓸데없이 길어지니 좋지 않죠.
2번도 내부적으로는 Invoke를 하기 때문에 결과적으로 똑같습니다.