Ein Lambda unterstützt einfach nicht ausgeführt zu werden. Ein Delegat unterstützt die Ausführung. Ein Lambda-Ausdruck kann implizit in einen Delegattyp konvertiert werden. Falls keine solche Konvertierung angefordert wird, gibt es keinen Delegattyp "Standard". Seit .NET 2 verwenden wir normalerweise Action
und Func
für alles, aber wir könnten verschiedene Delegattypen verwenden.
Erste, der einen Delegaten konvertieren, dann ausführen:
((Func<int>)(() => 0))()
Man könnte, dass C# argumentieren zu verwenden Action
und Func
wenn nichts anderes beantragt wurde in Verzug. Die Sprache tut dies ab C# 5 nicht.
Aber das funktioniert 'int i = ((Func) (() => 0))();' –
Verlasse nie zu Hause ohne diese Hilfsmethoden https: // gist.github.com/mausch/758f1bc7a6d6877229a2 –