这个:
const int a = 5;
编译得很好,而
const var a = 5;
不...而:
var a = 5;
编译和这个一样:
int a = 5;
为什么?
这个:
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
由于常量必须是内置数字类型 or string
,因此您并没有真正节省太多;const int
长度相同const var
并且int
可能是最常见的常量类型。然后double
是真的没有那么长。如果您有很多要输入的内容,请使用 Alt 选择功能 ;-)