ich gelesen, dass # lambdas C können imlicitly zum Handeln oder Func umgewandelt werden, aber Lambda kann nicht direkt Define a lambda function and execute it immediately Zum Beispiel ausgeführt werden:Wie ist der tatsächliche Lambda-Typ in C#?
int n = (()=>5)(); //doesn't work
int n = ((Func<int>)(()=>5))(); //works
Also, was die tatsächliche Art von Lambda ist und warum sie genannt werden, können nicht direkt? Liegt es daran, dass das C# -Typsystem "schwächer" ist als Haskell oder Scala?
Anonyme Art ??. –
Die Antwort in der verknüpften Frage gilt für Ihre Frage. Der C# -Compiler muss den Kontext kennen, der entweder Zuweisung oder Casting ist. Im ersten Beispiel tun Sie weder – Leri
Das Typsystem ist nicht damit verbunden. 'Dim n = Function() 5 'funktioniert in VB.NET gut und in F # ist es ähnlich, und sie haben das gleiche zugrundeliegende Typsystem. Dies ist nur ein Problem mit C#. –