我试图理解为什么string.Empty
是readonly
而不是const
. 我看到了这篇文章,但我不明白微软对此发表的评论。正如 Jon Skeet在评论中所写的那样: “我不知道——老实说,这对我来说没有多大意义……”
共享源公共语言基础结构 2.0 版本。string.cs 在 sscli20\clr\src\bcl\system\string.cs
// The Empty constant holds the empty string value.
//We need to call the String constructor so that the compiler doesn't mark this as a literal.
//Marking this as a literal would mean that it doesn't show up as a field which we can access
//from native.
public static readonly String Empty = "";
我在这里看不到任何 String 构造函数调用,此外,它被标记为文字 - “”
有人可以用纯文本解释我,评论是什么意思,为什么是string.Empty
readonly
而不是const
?
更新:
Eric Lippert现在评论了一个已删除的答案:
我在午餐时问了一位 C# 老前辈,他没有具体回忆为什么会做出这个决定,但推测这与实习有关。