Die C#-Spezifikation besagt, dass Lambdas untypisiert Konstrukte (wie Methodengruppen ). Sie können sein umgewandelt zu kompatiblen Typen. Aus diesem Grund können Sie nicht schreiben var something = (SomeType a) => a;
Der Grund dafür ist, dass sie je nach Kontext als Ausdrucksbäume und Delegierte interpretiert werden können. Es gibt keine Möglichkeit zu wissen, was außerhalb eines bestimmten Kontexts beabsichtigt ist. Sie können einen Lambda-Ausdruck oder eine Methodengruppe nicht außerhalb eines Kontexts verwenden, in dem sie in etwas umgewandelt werden können.
C#-Sprachenspezifikation v4.0 (§1.4.12)
Anonyme Funktionsumwandlungen und Methodengruppenumwandlungen
Anonyme Funktionen und Methodengruppen haben an sich keine Typen, können aber implizit in Delegatentypen oder Ausdrucksbaumtypen konvertiert werden. Die Konvertierung anonymer Funktionen wird in §1.44 und die Konvertierung von Methodengruppen in §1.45 näher beschrieben.