Как насчет этого?

я есть следующий код:

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, который я использую). Возможно, кто-то мог бы прояснить проблему. Благодарю.

Ответы на вопрос(7)

Ваш ответ на вопрос