Все ссылки, которые я могу найти здесь:
http://msdn.microsoft.com/en-us/library/ms364047(VS.80).aspx#cs3spec_topic4
показать, что у вас есть два варианта:
Action a = () => { throw new InvalidOperationException(); };
или
Action a = () => throw new InvalidOperationException()
Обратите внимание на пропавшие без вести; в конце. Да, для меня это тоже не имеет смысла. Примеры, которые они приводят в спецификации:
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
Не знаю, сколько это помощи - я не могу сказать, в каком контексте вы ее используете, а не ставите; в конце нет смысла в C #
разница может заключаться в том, что это тело выражения, а не утверждение, если оно не имеет {}. Это означает, что ваш бросок там недопустим, так как это утверждение, а не выражение!