Microsoft MVP성태의 닷넷 이야기
교재 194페이지 콜백메서드 질문 있습니다! [링크 복사], [링크+제목 복사]
조회: 563
글쓴 사람
한예지
홈페이지
첨부 파일
 
선생님 안녕하세요!
교재 194 페이지에 다음과 같은 문장이 있습니다.
"타입 자체를 전달해서 실수를 유발할 여지를 남기기보다는 메서드에 대한 델리게이트만 전달해서
이 문제를 해결할 수 있다."

타입 자체를 전달해서 실수를 유발한다는 것이 어떤 경우인지 이해가 되지 않습니다..

그림 4.12와 예제 4.21을 비교해도
target.Do(this) ← 그림 4.12
target.Do(new GetResultDelegate(this.GetResult)) ← 예제 4.21

인수로 넘기는 코드량도 그렇고 전체 코드 길이도 예제 4.21이 더 복잡해보입니다.
타입 자체가 Target 클래스의 Do 함수에 Source만 적으면 되는데
이것이 실수를 유발할 일이 있나요??...
예제 4.21를 통해 델리게이트를 사용해야 될 장점을 잘 모르겠습니다...




donaricano-btn



[최초 등록일: ]
[최종 수정일: 1/16/2021 ]


비밀번호

댓글 쓴 사람
 



2021-01-16 11시44분
콜백을 호출하기 위해 필요한 것은 메서드에 대한 정보일 뿐인데, 타입의 인스턴스를 전달하면 지정된 메서드 이외의 접근도 할 수 있습니다. 따라서 콜백보다는 부수 효과가 발생할 여지가 있습니다. 게다가 타입 정보를 전달해야 하면, target.Do 메서드를 라이브러리화하는 것도 쉽지 않습니다.

일단, 타이핑의 복잡성 문제는 전에 질문했던 https://www.sysnet.pe.kr/3/0/5450 글에 따라 다음과 같이 줄이는 것도 가능합니다.

target.Do(this.GetResult);

하지만, 개발자 본인이 원한다면 그냥 타입을 넘기도록 target.Do 메서드를 작성해도 무방합니다.
정성태
2021-01-16 03시58분
[예지] 답변 감사드립니다! 즐거운 주말 되세요~!!
[손님]

... [16]  17  18  19  20  21  22  23  24  25  26  27  28  29  30  ...
NoWriterDateCnt.TitleFile(s)
5045임도진8/22/20183165c# opencv dll파일 로드 질문 [3]파일 다운로드1
5044엿장수8/20/20182495graphedit 에 등록되어있는 필터를 가져와서 사용하는방법을 알고싶습니다 [2]
5043horizon8/20/20182372Expression에 대한 책의 예제 관련하여 질문드립니다. [1]
5042황윤하8/20/20183181모드버스 TCP 관련 질문 [2]
5041david8/18/20182532.NET WebAPI 에서 Response 지연되는 이유 [3]
5040농상8/14/20182677정규표현식에 대해서 [3]
5039유영태8/14/20183808비동기 소켓사용후 해당 스레드가 남아있을때 처리 방법 [4]파일 다운로드1
5038이정석8/9/20182398서버파일 로컬파일 비교 [2]
5037jjh8/8/20183895c# 으로 화면캡쳐해서 동영상으로 만드는앱을 만들고싶습니다 [5]
5036볼딱지8/8/20182747C# programming 개발 관련 질문이 있습니다. [1]
5035궁금합니다.8/8/20182932C# 버전 고민 어떤 책을 사야하나요? [1]
5034신동열8/8/20182507덤프 파일 분석 관련해서 문의 드려요. [1]
5033최규성8/7/20182870C# WinForm, Oracle 9i 로 프로그래밍시 ODP.NET, 배포 설정 방법 질문입니다. [4]
5032이정석8/6/20184909C# 으로 만들 dll 등록 [7]
5031J.S.8/6/20182269System.Array class의 구조에 대한 질문 [1]
5030농상8/4/20183012람다 식을 이용한 메서드 정의 확대를 공부하고 있습니다. [2]
5029SoulToMind8/3/20182447C# ActiveX 컨트롤 질문드립니다. [4]
5028도토리8/1/20183003혹시 회사에서 TFS 구축시 SQL-Server 라이선스 정책 아시는분 계신지요? [2]
5027농상7/31/20182882Freachable Queue의 발음을 표기하면 어떨까요? [2]
5026농상7/31/20183651소멸자의 이름에 대해서 [2]
5025김기철7/30/20182748selenium 질문좀 드릴개요 [3]
5024농상7/29/20182348패턴 매칭 when에 대해서 질문있습니다. [2]
5023농상7/28/20183539패턴매칭에 대해서 질문 있습니다. [1]
5022농상7/28/20182160튜플에 대해서 건의가 있습니다. [1]
5021농상7/27/20182142예외필터에 대해서 질문이요 [4]
5020농상7/27/20183463null 조건 연산자 예제에서 잠깐 혼동이 일어났습니다. [1]
... [16]  17  18  19  20  21  22  23  24  25  26  27  28  29  30  ...