Microsoft MVP성태의 닷넷 이야기
c# 콜백 메서드 [링크 복사], [링크+제목 복사],
조회: 13263
글쓴 사람
ocm
홈페이지
첨부 파일
 

시작하세요 c# 9.0 프로그래밍 책을 보는데 약간 헷갈리는부분이 있어 질문드립니다.
212페이지에 IntegerCompare클래스에 있는 Compare 메서드가 콜백 메서드인 이유를 잘 모르겠습니다.
혹시 예제 소스코드(예제 4.24)에서 Program클래스가 호출자이고 Array클래스가 피호출자인데 피호출자(Array클래스)의 메서드(Array.Sort함수)에서 IComparer.Compare 메서드를 호출한 것이 피호출자에서 다른타입에 정의된 메서드를 호출한 것 이라서 Compare메서드가 콜백 메서드인건가요?








[최초 등록일: ]
[최종 수정일: 5/14/2022]


비밀번호

댓글 작성자
 



2022-05-14 09시19분
넵, 관련해서는 195 페이지의 "Note"로도 간략하게 첨언을 했습니다.

좀 더 단순하게 설명을 해보면.

사용자가 객체의 메서드를 직접 호출하는 것을 "call"이라고 보고,
객체 측에서 사용자 측의 메서드를 호출하는 것을 "callback"이라고 보시면 됩니다.

또는,

사용자가 직접 호출하는 것을 call이라고 하는데, Array.Sort 메서드를 호출하는 것이 call에 해당합니다.
반면, Compare 메서드는 사용자가 직접 호출하지 않고 Array.Sort 내부의 코드에서 필요에 의해 역으로 호출하고 있는데요 그것을 callback이라고 보시면 됩니다.

또는,

예를 들어 윈도우 프로그램에서 "TextBox" 타입이 있는데요. 그 타입에서 텍스트를 설정하는 "void SetText(string text)" 메서드가 있어 그것을 호출하는 것이 "call"입니다.
반면, 텍스트 박스 내부에서 텍스트가 변경되면 발생하는 "TextChanged"라는 이벤트가 제공될 때, 그 이벤트가 발생할 때마다 실행되는 "이벤트 핸들러"가 있다면 그것은 "callback"되는 것입니다.
정성태
2022-07-04 02시30분
[권용완] 성태님 자세한 설명 감사드립니다. 저도 한번더 알아 가네요.
[guest]

... 31  32  33  34  35  36  37  38  39  40  [41]  42  43  44  45  ...
NoWriterDateCnt.TitleFile(s)
4865heyh...7/31/201719666클릭원스로 배포 한 프로젝트가 끝났는지 알 수 있는 방법 [8]
4864초보자7/28/201718833DllIImport질문 드립니다. [1]
4863다연아빠7/23/201719632전역 예외처리에 대해 질문있습니다. [3]
4861라르크7/17/201726453window form 예제 따라하는 중인데 12.3 서비스 응용 프로그램에서 진행이 안됩니다. [3]파일 다운로드1
4859heyh...7/10/201719813다른 환경에서 실행하기 [1]
4858heyh...7/10/201718929Clickonce update에 관한질문입니다. [1]
4857heyh...7/7/201719670제가 여태까지 작성한 보고서입니다. [2]파일 다운로드1
4856heyh...7/6/201717514성태님 다른질문입니다. [4]
4855JP7/6/201717586Dispose 패턴 구현시 Finalize 재정의에 대한 질문드립니다. [2]
4854heyh...7/6/201717847
4853heyh...7/5/201717151성태님이 작성한대로 해봤습니다. [1]파일 다운로드1
4852김레오7/4/201720436서드파티 dll 디버깅에 대해 질문드립니다. [2]
4851김현준7/3/201720919Datagridview VirtualMode 시 GC가 계속 호출되는 현상이 이해가 안갑니다. [2]
4850heyh...7/3/201719297성태님 밑에 질문드렸던 오류입니다. [1]파일 다운로드1
4849포플러7/2/201741312C#으로 만든 프로그램이 어느 순간 속도가 느려지거나 멈춤현상이 있습니다. [4]
4848윤진영7/2/201721589Microsoft Visual C++ 6.0 무설치 관련 [1]
4847heyh...6/30/201719058아무리 고민해도 답이 안나와서.. 질문 드립니다 [1]
4846heyh...6/28/201718606Clickonce에서 Clickonce로 변수 전달 [1]
4845heyh...6/26/201718069vb.net 에서 manifest 제거 방법 [1]파일 다운로드1
4844san6/21/201717716part3 pdf파일로 보는데 눈아퍼요.... 활자로 보고싶어요 [2]
4843윤현수6/20/201716582socket통신에 관한 질문입니다. [1]
4842오세운6/7/201717548로그인폼 다시 질문드려요. [1]
4841popo6/7/201718352궁금한사항이 있어 질문 드립니다. [1]
4840윤현수6/5/201718168datagridview에 바인딩시킨 dataset.table에 관련된 질문입니다. [2]파일 다운로드1
4839오세운6/2/201719188로그인폼 만들기 [1]
4838후배5/29/201719858PDF Reader 라이브러리.. [3]
... 31  32  33  34  35  36  37  38  39  40  [41]  42  43  44  45  ...