Alle Referenzen, die ich finden kann, finden Sie hier:
http://msdn.microsoft.com/en-us/library/ms364047(VS.80).aspx#cs3spec_topic4
zeigen, dass Sie zwei Möglichkeiten haben:
Action a = () => { throw new InvalidOperationException(); };
o
Action a = () => throw new InvalidOperationException()
Beachten Sie das fehlende ; am Ende. Ja, das ergibt für mich auch keinen Sinn. Die Beispiele, die sie in der Spezifikation geben, sind:
x => x + 1 // Implicitly typed, expression body
x => { return x + 1; } // Implicitly typed, statement body
(int x) => x + 1 // Explicitly typed, expression body
(int x) => { return x + 1; } // Explicitly typed, statement body
(x, y) => x * y // Multiple parameters
() => Console.WriteLine() // No parameters
Keine Ahnung, wie viel Hilfe das ist - ich kann nicht sagen, in welchem Kontext Sie es verwenden, und nicht ein ; am Ende macht keinen Sinn in C #
der Unterschied kann darin bestehen, dass es sich um einen Ausdrucksrumpf und nicht um eine Anweisung handelt, wenn das {} nicht vorhanden ist. Das bedeutet, dass Ihr Wurf dort nicht gültig ist, da es sich um eine Anweisung und nicht um einen Ausdruck handelt!