为什么"var"是C#中的合法类型名称?

use*_*322 0 c# var

事实证明,您可以创建一个名为的类var并使用它进行实例化new var();.是什么影响了C#开发人员允许这种情况发生var而不是其他关键字?

Bol*_*ock 10

var仅在C#3.0中引入.在旧版本的语言中,它根本不是关键字.设计人员可能不会var在他们第一次设计语言时创建关键字,因此始终允许代码将其用作标识符.

这就是为什么var只是一个上下文关键字.如果它是一个保留字,现有代码将在C#3.0编译器中中断,直到var重命名所有出现的代码.

  • https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/#contextual-keywords (3认同)
  • @ user1306322 - 您还可以使用名为`async`的变量.基本上,在C#1之后添加的任何新关键字往往是上下文的.想不出任何不是. (2认同)