2011-01-27 3 views

ответ

47

Вы не указываете тип возвращаемого значения при использовании анонимных методов. Это будет работать:

var x = new Action(delegate(){}); 

Некоторые альтернативы:

Action x =() => {}; // Assuming C# 3 or higher 
Action x = delegate {}; 
Action x = delegate() {}; 
var x = (Action) (delegate{}); 
+1

@maxp, вы также можете использовать синтаксис, такой как 'Action x = delegate() {};' - оба одинаковые, так что используйте ваши предпочтения! – VinayC

+0

Я ненавижу эту конструкцию, соблазненную дать вам -1; P – leppie

+1

@leppie: Мне тоже это не нравится, но это минимальные изменения, необходимые для компиляции кода OP :) Я предложу несколько альтернатив ... –

14

Почему не лямбда-нотации?

Action myAction= (Action)(()=> 
{ 
});
Смежные вопросы