我有以下密码:
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,这就是我正在使用的)。也许有人能解释一下这个问题。谢谢。