同じ - 差分はありません。コンパイラはデリゲートの型を推測し、自動的にあなたのためにそれを行います。あなたの人生を少し楽にする文法的な砂糖
ちょうど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