var关键字对于delegate类型不适用啊,为什么?

zoiere 2014-01-13 08:06:38
我写了几行小程序:

class Program
{
delegate bool FunDelegate(sbyte obj);
static void Main(string[] args)
{
sbyte s = 1;
FunDelegate f = s.Equals;//这句话没问题
var f2 = s.Equals;//为什么var会有语法错误?
}
}

FunDelegate f=s.Equals这一行有编译错误:error CS0815: Cannot assign method group to an implicitly-typed local variable

这到底是是什么意思呢? 不是说var关键字会自动萃取类型吗?
谢谢。
...全文
64 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2014-01-13
  • 打赏
  • 举报
回复
我想是为了避免程序员犯低级的错误吧。 因为让var指向一个方法,程序员忘记打括号的可能性更大。这会导致隐蔽的错误。
BenBenBears 2014-01-13
  • 打赏
  • 举报
回复
var can only be used when a local variable is declared and initialized in the same statement; the variable cannot be initialized to null, or to a method group or an anonymous function http://msdn.microsoft.com/en-us/library/bb384061.aspx 官网上面解释地很清楚。

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧