Как насчет этого?
я есть следующий код:
Func<string, bool> comparer = delegate(string value) {
return value != "0";
};
Однако следующее не компилируется:
var comparer = delegate(string value) {
return value != "0";
};
Почему компилятор не может понять, что этоFunc<string, bool>
? Он принимает один строковый параметр и возвращает логическое значение. Вместо этого он дает мне ошибку:
Невозможно назначить анонимный метод неявно типизированной локальной переменной.
У меня есть одно предположение, и этоесли версия вар скомпилированабыло бы непоследовательным, если бы у меня было следующее:
var comparer = delegate(string arg1, string arg2, string arg3, string arg4, string arg5) {
return false;
};
Вышеупомянутое не имеет смысла, так как Func <> допускает только до 4 аргументов (в .NET 3.5, который я использую). Возможно, кто-то мог бы прояснить проблему. Благодарю.