Microsoft MVP성태의 닷넷 이야기
c# 콜백 메서드 [링크 복사], [링크+제목 복사]
조회: 1147
글쓴 사람
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분
[권용완] 성태님 자세한 설명 감사드립니다. 저도 한번더 알아 가네요.
[손님]

1  2  3  4  5  6  7  8  9  [10]  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
5581김시준12/9/20211910닷넷에서 파일 delete 함수는 왜 비동기가 없는 것인가요? [2]
5580카짜...12/7/20212393패턴매칭 -튜퓰비교에 관한 오류사항과 궁금증 [1]파일 다운로드1
5579카짜...12/6/2021210211.12 메서드 중복정의에 대한 질문 [1]
5577감사...11/30/20211751visual studio 2015 update 3를 다운받을려고 하는데 x64/x86 차이점이 뭘까요? [2]
5576노홍구11/29/20211645C# 으로 USB 스캐너 프린터 리셋하기 입니다. [1]
5575베라11/23/20211642event handler 관련 문의 [2]
5574박원웅11/22/20211794닷넷 프레임워크 산출물의 배포시 해당 환경에 프레임워크 버전이 설치되어 있지 않는 경우를 고려한 배포방법은? [3]
5573mi...11/21/20211560System.NullReferenceException 에 대한 질문 [1]
5572김현진11/21/20211725C# list.Clear() 호출에 대한 문의 드립니다. [4]
5571한예지11/18/20211838무설치 프로그램 원리가 궁금합니다. [2]
5570초보11/16/20212031주식데이터 초당 수신 건수를 구하고 있는데 처리속도가 느려서요 [2]
5569카짜...11/14/20212226381페이지 UTC에대한 언급이 그리니치 천문대 시간으로 되어있는게 맞나요? [1]
5568카짜...11/14/20212298그림 5.20, 그림 5.22 언급 오류 [1]
5567Ed...11/2/20212154쿼리문을 코드로 어떻게 처리할 수 있을까요? [2]
5566민성10/26/20212184Linq에 관해서 [1]
5565pa...10/25/20212632wpf에서 Cefsharp를 AnyCPU로 작업 했는데 실행이 되지 않습니다. [4]
5564초보10/21/20211669오버라이드 관련 질문드립니다 [2]
5562서지훈10/20/20211750win32 api 문의 드립니다. (EnableMenuItem) [5]
5561Ed...10/15/20211893도와주세요!! 팝업 띄우는 더블클릭 이벤트!! 부탁드립니다 ㅠㅠ [4]파일 다운로드1
5560Ed...10/13/20212161C#초보자 개념이해 도와주세요!! [4]
5559최가운10/5/20212108C# debugging 중에 Thread Pool Worker들이 사라지는데요 [3]
5558옥코드9/29/20212074안녕하세요! EntityFramework Linq 질문 드리겠습니다. [4]
5557임기성9/16/20212488웹 사이트(IIS)가 오류로 인하여 빈번하게 죽는 이슈 문의 [1]
5556hj...9/13/20211831visual studio 설치 없이 csi.exe (C# interactive) tool을 설치할 수 있을까요? [2]
5555이성열9/2/20211731C# 런타임(Reflection)에서 소스코드에 입력한 함수설명(Summary)을 가져올 수 있을까요? [3]
5554농상9/2/20212246enum 원소값이 중복인 경우 출력 [4]
1  2  3  4  5  6  7  8  9  [10]  11  12  13  14  15  ...