델리게이트를 이용하여 멀티캐스트를 할 때, 같은 타입만 담을 수 있나요?
188
작성한 질문수 6
ExampleDelegate ed = Hello;
ed += Bye;
ed();
에서 Bye 매서드에 매개 변수가 있거나 반환 타입이 있으면 담을 수 없나요?
여러 번 해봐도 붉은색 밑줄만 나오네요. 제가 잘못 한 건지 원래 안 되는 건지.. 궁금합니다.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
네, 맞습니다. 델리게이트를 사용하여 멀티캐스트를 할 때, 델리게이트의 시그니쳐(반환 타입과 매개변수의 타입과 수)와 일치하는 메서드만 추가할 수 있습니다. 예제에서 ‘ExampleDelegate’의 시그니쳐와 ‘Hello’ 메서드의 시그니쳐가 일치하여 추가할 수 있었던 것입니다.
만약 ‘Bye’ 메서드가 ‘ExampleDelegate’의 시그니쳐와 다른 매개 변수를 가지고 있거나 반환 타입이 다르다면, ‘Bye’ 메서드를 델리게이트에 추가할 수 없습니다. 따라서, 여러 번 시도해도 붉은색 밑줄이 나타나는 것은 ‘Bye’ 메서드가 ‘ExampleDelegate’의 시그니쳐와 일치하지 않기 때문입니다.
델리게이트에 다른 타입의 메서드를 추가하고 싶다면, 해당 메서드의 시그니쳐를 맞추거나 또 다른 델리게이트를 정의해야 합니다.
EXTENSIONS
0
61
1
총알발사 Vector3
0
143
1
Invoke 오류
0
178
1
4.10 델리게이트 예문이 이해되지 않습니다.
0
135
1
기존에 있던 스크립트에 워링이 새로운 스크립트에서도 콘솔에 뜹니다.
0
134
2
강의 영상 2.5 객체 중 객체와 class관련 질문입니다
0
120
1
사용하시는 테마가 궁금합니다
0
230
1
저도 이동이 안돼요.....ㅠㅠ
0
213
1
작동이 안되네요
0
657
1
2.17강에서 피격부분이 작동하지 않습니다
0
230
1
교재 관련 질문
0
314
1
유니티 vscode 연결
0
1879
1
Vector2 Vectoe3
-1
383
1
실행시 콘솔창 출력안됨
0
2185
1
왜 이 책에서는 Time.deltaTime을 쓰지 않았는지?
0
802
1
혹시 강의 내용 정리한 것을 블로그에 포스팅 해도 될까요??
0
388
0
collision 발생 조건
0
457
0
강의 2.11 protected와 this/base 에서 객체생성 오류가 발생합니다.
0
333
0
class 작성 스크립트와 객체를 생성하는 스크립트가 다른 경우
0
293
1
질문이 있습니다! 컴파일 에러 관련입니다.
0
281
0
Peek에 대해서 질문드립니다.
0
381
1
이런식으로 코드를 짜도 될까요?
1
599
0
visual studio code
0
392
1
_언더바에 대해 질문드립니다.
0
318
1





