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

18 浏览
0 Comments

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

这个问题已经有了答案

\'Static readonly\' vs. \'const\'

与C#相关

情景1:

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

情景2:

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

使用静态变量也可以实现情况2。

那么为什么需要在C#中有const关键字呢?

admin 更改状态以发布 2023年5月21日
0
0 Comments

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

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

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

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

因此,常量、只读和静态具有明显的不同。

0