のように行うことができます。コードの両方の行が(ILSpy
によって例えば図示)同じMSIL code
を製造:
IL_000f: ldarg.0
IL_0010: call instance class [WindowsBase]System.Windows.Threading.Dispatcher [WindowsBase]System.Windows.Threading.DispatcherObject::get_Dispatcher()
IL_0015: ldarg.0
IL_0016: ldftn instance void WpfApplication2.MainWindow::'<.ctor>b__0_0'()
IL_001c: newobj instance void [mscorlib]System.Action::.ctor(object, native int)
IL_0021: ldc.i4.0
IL_0022: newarr [mscorlib]System.Object
IL_0027: callvirt instance class [WindowsBase]System.Windows.Threading.DispatcherOperation [WindowsBase]System.Windows.Threading.Dispatcher::BeginInvoke(class [mscorlib]System.Delegate, object[])
それだけで歴史的アーティファクトです。匿名メソッドがC#バージョン2で追加されました。バージョン3ではより普遍的なラムダ式構文を追加することを十分に自信と経験を与えました。まだanonメソッドを使用することはそれほど有用ではありません。 –