8

我正在阅读有关隐式类型局部变量(var)的内容

http://msdn.microsoft.com/en-us/library/bb384061.aspx

它规定了一个限制:

如果名为 var 的类型在作用域内,则 var 关键字将解析为该类型名称,并且不会被视为隐式类型局部变量声明的一部分。

任何人都可以用 C# 示例解释语句的含义吗?

4

1 回答 1

12

如果你这样做:

class var
{
    public static implicit operator var(int value)
    {
        return new var();
    }
}

var myVar = 5;

myVar遗嘱是 type而var不是 type int

operator我添加的是从intto的隐式转换var)。

插入这条规则是因为var它不是 C# 中的保留关键字(现在仍然不是......如果你看这里你会看到它是一个“上下文关键字”),所以一个名为的类/结构/枚举var在 C# 中是有效的2.0 .

  • 如果一个名为 var 的类型在范围内:如果有一个名为 var 的类/结构/枚举在范围内(只需编写 var 就可以“访问”,而不必使用命名空间)

  • 然后 var 关键字将解析为该类型名称:然后var表示“您的用户定义类型”而不是“关键字 var”

于 2013-08-28T07:25:46.793 回答