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

박준영님의 프로필 이미지

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

Listener

Action<Socket>에 대해 질문있습니다.

21.05.24 16:23 작성

·

335

1

Action<Socket>에 대해 나름대로 공부해봤는데 이해가 잘 안돼서 여쭤봅니다ㅠㅠ

1. "매개변수는 Socket 하나만 갖고 반환값은 없는 메서드를 참조하는 델리게이트" 라고 이해했는데 맞나요?

2._onAcceptHandler.Invoke(args.AcceptSocket);에서 Invoke는 뭘 해주는 함수인가요? 1번처럼 이해한게 맞다면 그냥 _onAcceptHandler(args.AcceptSocket);로 호출해도 될거같아서요.(실제로 이렇게 바꿔도 잘 동작하더라구요)

답변 3

1

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

2021. 05. 24. 16:29

1. 맞습니다!

2. 똑같습니다.
_onAcceptHandler() 이렇게 해도 내부적으로 .Invoke()가 호출됩니다.
가독성 측면에서, 그리고 nullable 지원 ?.Invoke() 할 수 있다는 점에서
저는 후자를 더 선호하지만 둘다 똑같으니 어느쪽으로 해도 무방합니다.

박준영님의 프로필 이미지
박준영
질문자

2021. 05. 24. 18:28

감사합니다!

0

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

2021. 06. 02. 16:31

그런 부분은 별다른 차이가 없고 편하신대로 하시면 됩니다.

0

박준영님의 프로필 이미지
박준영
질문자

2021. 06. 02. 13:32

아하 답변 감사드립니다!! 한 가지 좀 쉬운 질문일 수도 있는데 혹시 ServerCore에서 리스너를 Main함수 밖에서 스태틱으로 만들어주신 이유가 있을까요? Main 안에서 Listener listener = new Listener()로 만들어도 될것같아서요!