var 与其他关键字有何不同?
How is var different than other keywords?
我刚刚发现您可以使用 var
作为字段名。
var var = "";
为什么这可能?任何其他关键字作为 fieldname 都不会编译。
var string = ""; // error
嗯,string
是一个 关键字
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/
我们不能使用它作为标识符:
// doesn't compile
var string = "";
// doesn't compile as well
int string = 123;
但是,我们可以把String
(大写)标识符
var String = "";
string String = "";
String String = "";
相反,var
不是关键字,它只是上下文关键字(即它是仅某些上下文);这就是为什么下面几行是正确的:
string var = "";
int var = 123;
var var = "";
除其他答案外,string
是该语言的关键字,您不能使用此名称声明变量。这也适用于其他关键字,如 int
、double
、char
、event
等。您可以使用 @
转义此名称。例如:
var @string = "This is a string";
var @var = "This is a string declared named var";
var @int = 123;
var @double = 10.42;
而每次需要使用它时,都必须使用 @
。例如:
Console.WriteLine(@string);
这不是一个好的习惯,避免对变量、对象、参数、方法等使用这种名称
我刚刚发现您可以使用 var
作为字段名。
var var = "";
为什么这可能?任何其他关键字作为 fieldname 都不会编译。
var string = ""; // error
嗯,string
是一个 关键字
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/
我们不能使用它作为标识符:
// doesn't compile
var string = "";
// doesn't compile as well
int string = 123;
但是,我们可以把String
(大写)标识符
var String = "";
string String = "";
String String = "";
相反,var
不是关键字,它只是上下文关键字(即它是仅某些上下文);这就是为什么下面几行是正确的:
string var = "";
int var = 123;
var var = "";
除其他答案外,string
是该语言的关键字,您不能使用此名称声明变量。这也适用于其他关键字,如 int
、double
、char
、event
等。您可以使用 @
转义此名称。例如:
var @string = "This is a string";
var @var = "This is a string declared named var";
var @int = 123;
var @double = 10.42;
而每次需要使用它时,都必须使用 @
。例如:
Console.WriteLine(@string);
这不是一个好的习惯,避免对变量、对象、参数、方法等使用这种名称