为什么可以';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;

为什么

为什么可以';t我在C#中使用var声明一个常量

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 intconst var的长度相同,而int可能是最常见的常数类型。然后是double,它真的没有那么长。如果您有很多要键入的内容,请使用Alt选择功能;-)