为什么可以';t我在C#中使用var声明一个常量
本文关键字:声明 var 常量 一个 我在 为什么 | 更新日期: 2023-09-27 17:57:37
this:
const int a = 5;
编译得很好,而
const var a = 5;
没有。。。而:
var a = 5;
编译得和这个一样好:
int a = 5;
为什么
var
关键字的作用是避免编写长而复杂的类型名,因为它们不能是常量。
能够像一样编写声明是非常方便的
var dict = new Dictionary<string, List<Definition>>();
当使用匿名类型时,它变得必要。
对于常量,这不是问题
具有常量文字的最长内置类型名称是decimal
;这个名字不太长。
可以使用任意长的enum
名称作为常量,但C#编译器团队显然并不关心这一点
首先,如果要生成一个常量enum
值,那么不妨将其放入enum
中
此外,enum
名称不应太长。(与复杂的泛型类型不同,后者可以而且经常应该)
这是编译器的限制,Eric Lippert在这里给出了限制的原因
不带var的常量:
const int Value1 = 1;
const int Value2 = 2;
带有var的常量(创建后无法更改匿名类型属性值):
var constants = new {
Value1 = 1,
Value2 = 2,
};
//use as constants.Value1
由于常量必须是内置的数字类型或string
,因此您实际上并没有节省太多;const int
与const var
的长度相同,而int
可能是最常见的常数类型。然后是double
,它真的没有那么长。如果您有很多要键入的内容,请使用Alt选择功能;-)