Я отвечаю на этот вопрос.
Why can they not make String.Empty a compile-time constant?
Вот код дизассемблирования с помощью Reflector of String.cs в mscorlib.dll
public static readonly Empty;
static String()
{
Empty = "";
WhitespaceChars = new char[] {
'\t', '\n', '\v', '\f', '\r', ' ', '\x0085', '\x00a0', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
' ', ' ', ' ', ' ', '', '\u2028', '\u2029', ' ', ''
};
}
Таким образом, в платформе Windows, string.Empty в точности "". Но знаете ли вы, у марсиан есть разные определения для Empty и WhitespaceChars в их ОС.