为什么在C#编译器中引入了const关键字?

时间:2015-07-29 14:54:47

标签: c#

C#相关

场景1: 类中的readonly关键字字段/数据成员只会初始化一次。因此,该类的多个实例将与该只读数据成员的不同值一起存在。该类中的方法和属性永远不会修改此数据成员。

场景2: 类中的const关键字字段/数据成员将在同一语句中声明和初始化一次。否则编译器会生成错误在这种情况下,标记为const的数据成员将为为此类创建的多个实例保留相同的值。

方案2也可以使用静态变量来实现。

那么为什么需要在C#中使用const关键字?

1 个答案:

答案 0 :(得分:3)

静态变量可以随时更改 - 它们只是类类型中的单例。

只读变量只能在运行时设置一次。但是每次访问它们时都会从程序集中读取它们。它们可以是静态的或每个实例值。

Consts是编译时常量。它们不会在运行时进行评估,而是在编译客户端程序集时进行评估。如果希望,编译器可能会将它们内联到您的代码中。

Consts也可以在方法中使用,因此它们的值仅在方法范围内可用(与只读和静态不同)

Const,只读和静态因此彼此显着不同。