델리게이트란 무엇인가?
대리자.
메서드를 전달하는 참조자.
이름은 다르지만 리턴과 매개변수가 같은 메서드가 있다고 가정해 보자. 즉 이름만 다를뿐 형식은 동일하다.
이걸 delegate로 참조시킬 수 있다.
이럴때 이점은 메서드 매개변수로 다른 메서드를 전달할 수 있는 방법이 생긴다.
string method1 (string name)
{return name;}
위의 메서드가 있다고 가정해보자.
delegate string mydelegate (string s);
동일한 형태의 델리게이트 선언.
다음과 같은 함수를 만들어보자.
// 기능 메서드(함수)를 만든다.
string method1 (string name)
{
return name;
}
// 메서드(함수) 연결 고리 대리자 선언.
delegate string mydelegate (string s);
// 대리자 생성 및 연결함수 세팅하기
mydelegate m = new mydelegate(method1)
// 대리자를 매개변수로 받아서 작동하는 함수
void run(mydelegate m)
{
string name = m("철수");
Console.writeLine(name);
}
// 실행함수 작성
void Test()
{
run(m);
}