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


Why const keyword was introduced in C# compiler?

本问题已经有最佳答案,请猛点这里访问。

C相关

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

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

场景2也可以使用静态变量实现。

那么为什么需要在c中使用const关键字呢?


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

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

常量是编译时常量。它们不是在运行时计算的,而是在编译客户端程序集时计算的。如果编译器愿意的话,可以将它们内联到代码中。

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

因此,const、read only和static之间的差别很大。