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