我正在阅读
上的隐式类型局部变量(var)http://msdn.microsoft.com/en-us/library/bb384061.aspx
它说明了一个限制:
如果名为var的类型在范围内,则var关键字将解析为该类型名称,并且不会被视为隐式类型的局部变量声明的一部分。
任何人都可以通过C#示例解释声明的含义吗?
答案 0 :(得分:12)
如果你这样做:
class var
{
public static implicit operator var(int value)
{
return new var();
}
}
var myVar = 5;
myVar
的类型为var
,而不是int
类型。
(我添加的operator
是因为存在从int
到var
的隐式转换。
此规则已插入,因为var
在C#中没有保留关键字(但仍然不是......如果你看here,你会看到它&#39 ; sa" contextual keyword"),因此名为var
的类/结构/枚举在C#2.0中有效。
如果名为var的类型在范围中:如果有一个名为var的类/结构/枚举在范围内(所以"可达"只需写var,无需使用命名空间)
然后var关键字将解析为该类型名称:然后var
表示"您的用户定义类型"而不是"关键字var"