я не могу получить следующие компиляции:Инлайн Делегат декларация (C#)
var x = new Action(delegate void(){});
Может кто-нибудь указать на то, что я делаю не так?
я не могу получить следующие компиляции:Инлайн Делегат декларация (C#)
var x = new Action(delegate void(){});
Может кто-нибудь указать на то, что я делаю не так?
Вы не указываете тип возвращаемого значения при использовании анонимных методов. Это будет работать:
var x = new Action(delegate(){});
Некоторые альтернативы:
Action x =() => {}; // Assuming C# 3 or higher
Action x = delegate {};
Action x = delegate() {};
var x = (Action) (delegate{});
Почему не лямбда-нотации?
Action myAction= (Action)(()=>
{
});
@maxp, вы также можете использовать синтаксис, такой как 'Action x = delegate() {};' - оба одинаковые, так что используйте ваши предпочтения! – VinayC
Я ненавижу эту конструкцию, соблазненную дать вам -1; P – leppie
@leppie: Мне тоже это не нравится, но это минимальные изменения, необходимые для компиляции кода OP :) Я предложу несколько альтернатив ... –