为什么String.Empty不是常数?

在.Net中,为什么String.Empty只读而不是常量?我只是想知道是否有人知道该决定背后的原因。



FFIVE
浏览 504回答 3
3回答

蝴蝶不菲

我认为这里有很多混乱和不良反应。首先,const字段是static成员(不是实例成员)。检查C#语言规范的10.4常量。即使常量被认为是静态成员,常量声明也不需要也不允许使用静态修饰符。如果public const成员是静态的,则不能认为常量会创建一个新的Object。鉴于此,以下代码行在创建新Object方面的作用完全相同。public static readonly string Empty = "";public const string Empty = "";这是Microsoft的注释,解释了2之间的区别:readonly关键字与const关键字不同。const字段只能在该字段的声明中初始化。只读字段可以在声明中或在构造函数中初始化。因此,取决于使用的构造函数,只读字段可以具有不同的值。同样,虽然const字段是编译时常量,但readonly字段可用于运行时常量,...因此,我发现唯一合理的答案是杰夫·耶茨(Jeff Yates)。
打开App,查看更多内容
随时随地看视频慕课网APP