为什么我可以创建一个名为“var”的类?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (23)

var在C#中不是关键字吗?但为什么我可以这样做:

public class var { }

public class main
{
    public static void main(string[] args)
    {
        var testVar = new var();
    }
}

var是在代码中使用的是var这是在之前声明的类main类。编译器甚至不抱怨。

当我这样做时:

public class int { }

或这个:

public class true { }

编译器表示int或者true是关键字,不能像那样使用。为什么它不一样var

提问于
用户回答回答于

var根据此列表不是关键字。

它是一个上下文关键字,因此从上下文中编译器可以决定哪个是您的类,哪个是上下文关键字,并且不会出现混淆。

一个上下文关键字是:

用于提供代码中的特定含义,但它不是C#中的保留字。

所以它没有保留,你可以使用它。

值得注意的是,由于关键字集是在C#1.0中决定的,因此没有添加,以保持向后兼容性。

用户回答回答于

编译器足够聪明,知道你var用作类名的上下文永远不是关键字的上下文,所以它允许它(这就是为什么它被定义为上下文关键字)。

所属标签

可能回答问题的人

  • 红双喜经典VS中华

    1 粉丝0 提问8 回答
  • LemonLu

    社区 · 运营 (已认证)

    45 粉丝0 提问4 回答
  • 13火麒麟

    0 粉丝0 提问4 回答
  • 吉_Gi

    0 粉丝3 提问3 回答

扫码关注云+社区