Fun c тип с параметром и пустым возвратом - PullRequest
0 голосов
/ 25 января 2020

Я хотел знать, почему это не работает? Компилятор говорит, что void нельзя использовать с типом Func. В таком случае какие у меня варианты

  Func<int,void> func1 =  (x) => { Console.WriteLine("Hello World"); };

Ответы [ 3 ]

5 голосов
/ 25 января 2020

Func<T, TResult> делегат имеет один параметр и возвращает значение типа, указанного в TResult, вы не можете использовать void, поскольку он указывает, что метод не возвращает никакого значения и не может использоваться в качестве аргумента типа.

Вы можете использовать Action<T> делегат в вашем примере, он имеет единственный параметр и не возвращает значение

Action<int> action = (x) => { Console.WriteLine("Hello World"); };

Поскольку параметр x не используется, вы можете просто использовать без параметров Action делегат

Action action = delegate { Console.WriteLine("Hello World"); };
1 голос
/ 25 января 2020

Вы ищете Action<int>

0 голосов
/ 25 января 2020

Вы можете объявить Action, но проблему можно решить, вернув, например, нулевой объект.

Func<int,object> func1 =  (x) => { Console.WriteLine("Hello World"); return null;};
func1(2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...