2010-04-16 8 views
1

여전히 대리인 주위에서 머리를 감싸는 것은 궁금합니다. 익명 함수를 오버로드 할 수 있습니까?익명 함수 오버로드

delegate void Output(string x, int y); 

는 지원 :

있도록 허용

delegate void Output(string x, string y); 

:

Output show = (x, y) => Console.WriteLine("{0}: {1}", x.ToString(), y.ToString()); 

show("ABC", "EFG"); 

및 :

show("ABC", 123); 

답변

3

아니요. 위와 같은 대리인에 과부하를 걸 수 없습니다.

delegate void Output(string x, string y); 

가 다시 정의합니다 :

이로 변경 유형

delegate void Output(string x, int y); 

입니다.

이름 공간이 같은 두 개의 서로 다른 클래스를 정의하는 것과 비슷할 것입니다.

2

아마도 일반 대표를 사용할 수 있습니다.

public delegate void Output<T1,T2>(T1 x, T2 y);