본문 바로가기
C#

delegate 알아보기

by edupicker(체르니) 2008. 9. 19.


Delegate는 대리자라고 해석할 수 있는데 C언어를 공부해 본 적이 있는 사람은 함수포인터(Function Pointer)라는 것에 대해서 들어보았을 텐데요. 이 함수포인터와 비슷하다고 보면 됩니다.

제가 VB.NET 2008로 올린 글 http://fromyou.tistory.com/15 을 보시면 VB.NET에서 이용하는 delegate에 대해서 설명을 해 놓았습니다. C#이나 VB.NET은 형식의 조그마한 차이가 있을 뿐 사용은 거의 비슷한 것 같습니다.

제가 VB.NET2008로 멀티채팅프로그램(http://fromyou.tistory.com/16) 만들 때 서버나 클라이언트에서 이벤트가 발생하면 그것을 비동기 전송하기 위해서 콜백함수를 이 delegate로 만들었는데요.
참 편리하더군요.
시간이 되면 C#으로도 멀티채팅프로그램을 만들어 볼까 합니다.
서론이 길었군요. 예제를 보고 delegate에 대해서 생각해 볼까요?

소스 

제가 주석을 조금 달아 놓았기 때문에 그냥 보시면 이해가 되실 겁니다. 
delegate 선언하고 -> 두 수를 입력받으면 처리하는 2개 함수 만들어주고 -> Main함수에서 delegate 변수 만들어주고 -> 두 수 입력받아 데이터 처리해서 함수에 들어갈 parameter1,2를  추출 -> 실행 

실행결과

여기서 추가적으로 눈여볼 부분은 문자열 처리부분인데요. substring(int startIndex, int length)인데 이 함수는
지정된 문자 위치에서 시작하여 길이만큼 문자열을 반환해주는 함수로 대단히 중요하니 잘 익혀두시길..
이 함수는 SQL Programming 할 때도 많이 쓰니까 꼬옥~(^^;;) 익혀 두시길..

그럼 간략한 delegate에 대한 글을 마칩니다.