Значение запутанного комментария выше «string.Empty» в источнике .NET/BCL?C#

Место общения программистов C#
Anonymous
Значение запутанного комментария выше «string.Empty» в источнике .NET/BCL?

Сообщение Anonymous »

Я пытаюсь понять, почему string.Empty доступен только для чтения, а не является константой. Я видел это сообщение, но не понимаю комментария Microsoft, написанного по этому поводу. Как написал Джон Скит в комментарии "Я не знаю - для меня это не имеет особого смысла, если честно..."

Выпуск Common Language Infrastructure 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 доступен только для чтения, а не является константой?


Обновление:

Эрик Липперт прокомментировал уже удаленный ответ:< /p>


Я спросил об этом одного из старожилов C# за обедом, и он не вспомнил конкретно, почему было принято такое решение, но предположил, что так оно и есть. имело какое-то отношение к стажировке.


Подробнее здесь: https://stackoverflow.com/questions/848 ... bcl-source

Вернуться в «C#»