Microsoft MVP성태의 닷넷 이야기
C# 6.0 델리게이트 인스턴스화 관련 질문~ [링크 복사], [링크+제목 복사],
조회: 11210
글쓴 사람
DC (originalimage at naver.com)
홈페이지
첨부 파일
 

안녕하세요~

프로그래밍은 백지인 상태에서 열심히 C#을 공부하고 있는데요~
궁금한 것은 여기저기 검색도 해보고 직접 코딩도 해보면서 익히고 있는데
델리게이트 인스턴스를 만드는 부분에서 도저히 관련 내용을 못찾겠는게 있어서
질문남겨요~

델리게이트 타입을 정의한 후에 new로 인스턴스를 만들고 거기에 메서드를 넣는것으로 설명이 되어 있는데,

예제 4.21(204P) 마지막 줄
target.Do(new GetResultDelegate(this.GetResult))
을 보면 인스턴스명도 없이 메서드의 인자를 넣는 자리에 new를 선언하는 것으로 인스턴스를 만들어 버리네요.
여기저기 찾아보니 target.Do(this.GetResult)로 줄이는 방법도 있더라고요

질문의 핵심은 정식으로 인스턴스를 만드는 과정 없이
위의 예문처럼 델리게이트를 사용하는 것에 대한 설명을 듣고 싶어요
아무리 찾아봐도 이전 단원에는 관련 설명이 없는것 같아서요~

또 뒤에 보니 비슷하게 인터페이스도 217p 마지막 두 줄
DisplayObject(new Computer());
을 보면 클래스의 인스턴스를 만들지도 않고 메서드의 인자 넣는 자리에서 new를 선언하는 것이 있네요

제가 보기에는 둘 다 같은 원리로 작동되는 것 같은데
설명 부탁드려요~













[최초 등록일: ]
[최종 수정일: 4/30/2016]


비밀번호

댓글 작성자
 



2016-04-30 01시18분
"인스턴스 명"이라기 보다는, '변수'에 담지 않고 사용하는 것이 가능하냐는 질문으로 보이는데요. 결론부터 말하면, 가능합니다. 즉, 다음의 코드는,

 MyClass var1 = new MyClass();
 test.MyMethod(var1);

var1을 굳이 또 다른 코드에서 쓸 목적이 없다면 정의하지 않고 다음과 같이 곧바로 전달해도 됩니다.

 test.MyMethod(new MyClass());

즉, 질문한 코드의 내용은 다음의 코드와 완전히 동일한 구문입니다.

 GetResultDelegate resultFunc = new GetResultDelegate(this.GetResult);
 target.Do(resultFunc);

또한, 다음의 구문도 완전히 동일한 것입니다.

 1. target.Do(new GetResultDelegate(this.GetResult);
 2. target.Do(this.GetResult);

위의 2가지 구문이 같다는 것은 197 페이지 중간 쯤에 "C# 2.0 부터는..." 이라고 하면서 설명을 해두었습니다. 2번과 같이 개발자가 코딩을 해도, C# 컴파일러는 1번과 같은 유형으로 자동으로 변환해서 컴파일해 줍니다.

정성태
2016-04-30 01시48분
[DC] 감사합니다~
정확히 궁금하던것이 시원하게 해결되었네요
그냥 그럴거 같다 싶었던 것이
정확한 설명을 들으니깐 개운해지네요 ㅎㅎ
[guest]

... 46  47  48  49  50  51  52  53  54  55  56  57  58  59  [60]  ...
NoWriterDateCnt.TitleFile(s)
1116C#조으다1/27/201317101비프음을 컴퓨터 내장 스피커로 출력하려면.. [2]
1114박재율12/28/201210324WCF 세션과 스트리밍 동시사용에 관해. [1]
1113박진영12/28/201220723윈도우 2008 64비트 닷넷 오류 문의드립니다. [13]
1112이대근12/18/201214962[질문] odp.net 배포 관련 궁금한게 있어서 질문좀 드릴게요 [3]
1111나그넹!12/13/201211415안녕하세요. 파일전송에 관련해서 궁금한것좀 여쭈고싶네요. [1]
1110김동현12/11/201213408안녕하세요 닷넷 신입개발자입니다 Clickonce 질문좀 하겠습니다. [6]파일 다운로드1
1109김성우12/5/201210371WCF IIS 호스팅 관련하여 질문 드립니다. [1]
1123윤용한3/13/201310552    답변글 [답변]: WCF IIS 호스팅 관련하여 질문 드립니다.
1107우라미윰11/22/201217323안녕하세요. RSA공개키 알고리즘에 나와있는 글을 보고 응용을 해야 하는데 막히는 부분이 있어서 질문드립니다. [3]파일 다운로드1
1106초급11/21/201210976WCF Server 인증서 및 Client 인증서 문의 [1]
1104hon11/17/201210564VS2008에서 디버그/릴리즈 환경중에 디버그 환경의 빌드시 배열의 자동 초기화 라는 것에 대해서 궁금합니다. [3]
1102최년호11/15/201213233[탭 브라우저의 윈도우 핸들 구하기] 예제에서 활성화 방법 [1]
1100박진영11/7/201218863[긴급] 코드 액세스 보안 정책(CASPOL.exe) 설정해도 SmartClient 보안에러가 발생합니다. [6]
1099Hyey...10/22/201213021php에서 c file compile [4]
1095이지은10/8/201230204중단점이 현재 적중되지 않았습니다 [3]
1094고민남10/6/201210598NScreen 에 대해 어떻게 생각하십니까? [1]
1093이지수10/6/20129968vbs [1]
1092김성수9/20/201211201안녕하세요? MS Windows server 2008 R2 에서 IIS7 의 SSL 설정시에 에러 해결좀 도와주세요 [1]
1089한상욱9/13/201211151azure에 관한 질문입니다. [1]
1088김영대9/12/201213309DirectX.AudioVideoPlayBack 참조하여 wav 재생기를 제작하여 SmartClient 를 이용하여 aspx 페이지에 Embed 하는 과정의 질문 사항입니다. [2]
1087한우주9/10/201214004SSL 모든 웹페이지에 적용해야하나요? [2]
1086한우주9/4/201212182SSL 인증서 범용으로 사용하기 [3]
1085한우주9/4/201210589개발환경구성 18.3.1 에 대한 문의 [2]파일 다운로드1
1084김종하9/3/201211603team foundation express 2012에서 새 프로젝트 생성... [3]
1082김대경8/23/201210540windows2008 에서 ActiveX 사용 시 문제점. [3]
1091김대경9/20/201210591    답변글 [답변]: windows2008 에서 ActiveX 사용 시 문제점. [2]파일 다운로드1
... 46  47  48  49  50  51  52  53  54  55  56  57  58  59  [60]  ...