기본적으로 delegate 는 C 함수에서 Function Pointer 와 유사하다. 그 함수포인트는
주소값을 가지며 실시간에서 호출할수 있게 되어있다. C# delegate 는 좀더 향상된 function pointer 이며
디자인 패턴이나 아키텍쳐를 설계하는데 많은 도움을 준다.
delegate 객체는 기본적으로 함수의 레퍼런스를 가지고 있으며 그 함수는 delegate 객체에 의해
호출이 되어지는 구조이다. 사용방법은 다음과 같다.
1. delegate 선언
public delegate int Calculate(int value1, int value2);
2. delegate 와 연결할 함수 생성
public int add(int value1, int value2){
return value1 + value2;
}
public int sub(int value1, int value2){
return value1 - value2;
}
3. delegate 객체와 생성한 함수의 연결
MyClass mc = new MyClass();
Calculate add = new Calculate(mc.add);
Calculate sub = new Calculate(mc.sub);
4. delegate 객체를 사용하여 파라미터넘기고 호출
Console.WriteLine("Adding two values : " + add(10, 6));
Console.WriteLine("Subtracting two values : " + sub(10, 4));
'기타 언어 > C# & MFC' 카테고리의 다른 글
C# 에서의 Thread class (0) | 2009.03.21 |
---|---|
DB 검색 데이타 양이 많아 메인 화면이 멈추는걸 막고 독립적인 Thread 로 돌리고 싶을때 (2) | 2009.03.21 |
List 나 Grid 등에 대량의 데이터를 업로드 할 때 화면멈춤 해결하기 (0) | 2009.03.19 |
C# 에서 Thread Safe 의 2가지 사용법 (0) | 2009.03.19 |
Error while trying to run project : Unable to start debugging 잘못된 바인딩핸들입니다 - 에러 (0) | 2009.03.18 |
Local 컴퓨터에 있는 OLEDB Provider 를 알아오는 방법 (0) | 2009.03.17 |
ADO Connection Strings (0) | 2009.03.15 |
CString 의 모든 관련내용 (0) | 2009.03.15 |