Microsoft MVP성태의 닷넷 이야기
델리게이트와 함수포인터 선언 시, 차이점 질문 있습니다. [링크 복사], [링크+제목 복사],
조회: 13270
글쓴 사람
한예지 donator
홈페이지
첨부 파일
 

선생님 안녕하세요!

int (*fp)(int, int); // int형 반환값, int형 매개변수 두 개가 있는 함수 포인터 fp 선언

delegate int CompareDelegate(int param1, int param2);

델리게이트 선언 시, C언어의 함수 포인터와 다르게 매개변수명(param1, param2)까지 넣어주는 이유가 따로 있을까요?

생각해보면 A라는 사람이 만든 CompareDelegate에

B라는 사람이 만든 아래 메서드를 CompareDelegate에 대입하는 경우를 생각해보면

int DescendingCompare(int i1, int i2)
{
     if (i1 == i2) return 0;
     return (i1 - i2) > 0 ? 1 : -1;
}

매개변수의 타입과 리턴 타입만 필요한 것 같은데...

굳이 사용하지 않는 변수명까지 델리게이트 선언 시 넣어주는 이유가 궁금합니다.

항상 답변해 주셔서 감사합니다!








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


비밀번호

댓글 작성자
 



2022-05-22 12시24분
[Bigsquare] Semantics의 문제 아닐까요?

식별자로만 의미를 부여하겠다면, Func<int, int, int> CompareDelegate;
매개변수까지 의미를 부여하겠다면, delegate int CompareDelegate(int oldRecord, int newRecord);
[guest]
2022-05-23 09시04분
부가 설명을 하면, delegate를 쉽게 설명해서 C/C++의 함수 포인터와 비교를 하지만 엄밀히는 내부적으로 class 정의처럼 다룹니다. 게다가 C# 9.0부터 제대로 된 함수 포인터와 유사한 문법이 추가되었기 때문에,

C# 9.0 - (6) 함수 포인터(Function pointers)
; https://www.sysnet.pe.kr/2/0/12374

이와 비교하면 C#의 함수 포인터도 매개 변수명을 생략하는 식입니다.
정성태
2022-05-30 06시02분
[한예지] 두 분 모두 답변 감사드립니다!
[guest]

... 61  62  63  64  65  66  67  68  69  70  71  72  [73]  74  75  ...
NoWriterDateCnt.TitleFile(s)
730김재영11/10/200714042스레드에 사용되는 함수에 값을 같이 넘기는 방법이 있습니까?? [2]파일 다운로드1
727제영한10/24/200713125시스템 설계에 대한 문의드립니다.
728정성태11/3/200713924    답변글 [답변]: 시스템 설계에 대한 문의드립니다. [2]
726한귀순10/24/200714762SQL 2005 Express 사용시.. [3]
725이방은10/23/200715017성태님 GDI+질문있어요.. [2]
724clic...10/17/200716117clickonce 작동시 무반응입니다. [1]
722한귀순10/11/200719727Internet Explorer 7.0 에서 ClickOnce Error [3]
721이카루스10/5/200715963WCF 질문드립니다.
723정성태10/14/200714034    답변글 [답변]: WCF 질문드립니다.
720limj...10/5/200715477인증서/스마트 카드에 기반한 Managed Card - STS 구현 질문 [2]
718DJ.처리10/2/200724190[VS.NET 2008] 스마트클라이언트 게시 오류...도와주세요~ [2]파일 다운로드2
716guest9/28/200719137실행시간이 긴 com+ 객체가 죽는거 같습니다. 어떻게 해야 할지.... [3]
713하민규9/19/200714153VC++ 6과 Vista UAC ..파일 다운로드1
715정성태9/28/200715358    답변글 [답변]: VC++ 6과 Vista UAC ..
711술푼어둠이9/17/200714355사설 IP 사용 문제?? [1]파일 다운로드1
709한귀순9/14/200713958asp.net 에서의 paging 관련. [2]
708이준영9/13/200716112마우스 커서의 움직이는 속도 알아내는 좋은 방법은?
712정성태9/17/200714617    답변글 [답변]: 마우스 커서의 움직이는 속도 알아내는 좋은 방법은?
707hatu...9/10/200714392window2000과 ssl 그리고 frame [2]
701소쿠리9/5/200714675Get 으로 넘긴 한글 문자열 Respose.AddHeader 에서 filename 으로 사용시 깨짐. [1]
699유현기9/3/200714726[질문1]스마트 클라이언트에서 웹의 변수를 스마트 클라이언트에서 받아쓰기(제발도와주세요 ㅠ.ㅠ)파일 다운로드1
700정성태9/3/200713777    답변글 [답변]: [질문1]스마트 클라이언트에서 웹의 변수를 스마트 클라이언트에서 받아쓰기(제발도와주세요 ㅠ.ㅠ)
696clev...8/31/200714162Exe COM으로 만들면 혹시 Bridge dll없이도 권한 상승이 가능한가요? [1]
702clev...9/5/200713839    답변글 [답변]: Exe COM으로 만들면 혹시 Bridge dll없이도 권한 상승이 가능한가요?
695스마일8/30/200714031Visaul Studio 2005에서 디버깅이 안되요...ㅠㅠ [1]
694이호정8/29/200714087[CardSpace 관련 질문] 정리해 좋으신 글 잘 보았습니다.
... 61  62  63  64  65  66  67  68  69  70  71  72  [73]  74  75  ...