我很想知道 const
变量和 static
变量之间的区别。
const
变量是否也总是static
?它们有什么区别?
最佳答案
const
字段只能保存值类型或 System.String
。它们在编译时必须是不可变的和可解析的。
static readonly
字段可以而且通常确实包含引用类型,引用类型(字符串除外)只能在运行时创建。这些可以(但不应该)是可变类型;唯一不能改变的是引用本身。
如果您需要维护一组引用类型的“常量”实例,通常使用一组public static readonly
字段来实现,例如System.Drawing.SystemColors 的成员。 .
最后但同样重要的是,readonly
字段的初始化可以推迟到构造函数执行时进行,这意味着即使它只能写入 一次,它并不总是必须用完全相同的值初始化。用 const
声明的真常量只能有一个值(在编译时指定)。
关于c# - C# 中的 const 和 static 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2512946/