我正在阅读关于Implicitly Typed Local Variables(var)的内容
http://msdn.microsoft.com/en-us/library/bb384061.aspx
它说明了一个限制:
如果名为var的类型在范围内,则var关键字将解析为该类型名称,并且不会被视为隐式类型的局部变量声明的一部分.
任何人都可以通过C#示例解释声明的含义吗?
xan*_*tos 12
如果你这样做:
class var
{
public static implicit operator var(int value)
{
return new var();
}
}
var myVar = 5;
Run Code Online (Sandbox Code Playgroud)
该myVar会类型var,而不是类型int.
(在operator我已经添加是使得存在隐式转换从int至var).
插入此规则是因为var它不是C#中的保留关键字(但仍然不是......如果你看这里你会看到它是一个"上下文关键字"),所以命名的类/结构/枚举var在C#中是有效的2.0.
如果名为var的类型在范围内:如果有一个名为var的类/结构/枚举在范围内(因此只需编写var就可以"访问",而不必使用命名空间)
然后var关键字将解析为该类型名称:然后var表示"您的用户定义类型"而不是"关键字var"