Significado de comentário confuso acima de "string.Empty" na fonte .NET / BC
Estou tentando entender por questring.Empty
éreadonly
e não umconst
. Eu viest Post, mas não entendo o comentário que a Microsoft escreveu sobre isso. Como Jon Skeetescrev em um comentário "Eu não sei - não faz muito sentido para mim, para ser honesto ..."
ersão do Common Language Infrastructure 2.0. string.cs está em 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 = "";
Não consigo ver aqui nenhuma chamada do construtor String e, além disso, está marcado como literal - ""
Pode alguém por favor me explicar em texto simples, o que o comentário significa e por que éstring.Empty
readonly
e não umconst
?
Atualizar
Eric Lippert comentou até agora umdeleted answer:
Perguntei a um dos veteranos do C # durante o almoço sobre isso e ele não se lembrou especificamente por que essa decisão foi tomada, mas conjeturou que isso tinha algo a ver com a internaçã