동일 - 차이가 없습니다. 컴파일러는 델리게이트의 타입을 추론하고 자동으로 당신을 대신합니다. 당신의 인생을 좀 더 편하게 해주는 구문 설탕
그냥 깊이 C#으로 확인. 이 기능을 "방법 그룹 변환"; C# 2.0에 추가되었습니다.
내가 반사경이를 열면 책에서
static void MyMethod() { ... }
static void MyMethod(object sender, EventArgs e) {...}
static void Main() {
ThreadStart x = MyMethod; // binds to first overload
EventHandler y = MyMethod; // binds to second overload
}
, 당신은 물론 무대 뒤에서, 컴파일러는 당신을 위해 올바른 유형의 대리자 인스턴스를 만들어 볼 것입니다.
L_0000: ldnull
L_0001: ldftn void CS.Temp.Program::MyMethod()
L_0007: newobj instance void [mscorlib]System.Threading.ThreadStart::.ctor(object, native int)
L_000c: pop
L_000d: ldnull
L_000e: ldftn void CS.Temp.Program::MyMethod(object, class [mscorlib]System.EventArgs)
L_0014: newobj instance void [mscorlib]System.EventHandler::.ctor(object, native int)
L_0019: pop
이것은 속입니다. –
차이가 없습니다. 내 0.02c, 이벤트 등록을 취소하는 동안도 마찬가지입니다. –
@Mehrdad - 적어도 중복에 대한 링크를 제공 할 수 있습니다. – Elad