为什么 C# 不允许在同一行上使用 const 和 static?

2022-09-01 18:03:57

为什么 C# 不允许在同一行上使用 const 和 static?在 Java 中,必须将字段声明为“static”和“final”才能充当常量。为什么 C# 不允许您将 const 声明为 final?

我进一步区分了在Java中,每个接口都是公共和抽象的,无论这是否被显式声明。const在本质上不是静态的吗?WHy C#对此犹豫不决吗?


答案 1

conststatic确实意味着不同的东西,不同的存储机制,不同的初始化。static 是读/写的,因此必须为存储分配内存,并且必须在运行时进行初始化。静态可以使用文本值或表达式进行初始化。相反,const 是不可变的,必须使用编译时常量(通常是文本值或可在编译时完全计算的表达式)进行初始化。该值在编译时是已知的,因此可以直接嵌入到生成的代码中,因此不需要在运行时分配存储。


答案 2

量本质上是静态的,所以这将是多余的。


推荐