var与其他关键字有何不同?

boo*_*oop 5 c# c#-3.0

我刚刚发现您可以将其var用作字段名。

var var = "";
Run Code Online (Sandbox Code Playgroud)

为什么会这样呢?作为字段名的任何其他关键字将无法编译。

var string = ""; // error
Run Code Online (Sandbox Code Playgroud)

Dmi*_*nko 8

好吧,string是一个关键字

https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/

我们不能将其用作标识符:

// doesn't compile
var string = "";
// doesn't compile as well
int string = 123;
Run Code Online (Sandbox Code Playgroud)

但是,我们可以将String(大写)标识符

var String = ""; 
string String = "";
String String = "";
Run Code Online (Sandbox Code Playgroud)

相反var不是一个关键字,它是一个上下文关键字只(即它是在一个关键字某些情况下只); 这就是为什么以下几行是正确的:

string var = "";
int var = 123;
var var = "";
Run Code Online (Sandbox Code Playgroud)