Я ищу хорошее объяснение, почему один фрагмент кода не компилируется, а другой компилируется просто отлично.
Сбои:
richTextBox1.Invoke(new MethodInvoker((() => { richTextBox1.AppendText("test"); })));
Выдает ошибку
Ожидается имя метода
в открывающей скобке сразу после MethodInvoker(
.Видимо, я не могу заключить свои лямбда-выражения в скобки.
Компиляции:
richTextBox1.Invoke(new MethodInvoker(() => { richTextBox1.AppendText("test"); }));
Вопросы - почему?
Я всегда считал само собой разумеющимся, что могу заключить любой параметр метода в скобки, если захочу, но, видимо,не в случае с лямбда-выражениями.Я понимаю, что они несколько особенные, но я до сих пор не вижу веских причин для этого.Может быть, я не понимаю что-то о синтаксисе.Я бы очень хотел получить его.
Кстати, это присутствует в VS2008, .NET 3.5 SP1, я еще не тестировал его в VS2010 и .NET 4.