我有以下代码:
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中),因此上述内容没有任何意义。也许有人可以澄清这个问题。谢谢。