Changed behavior of string.Empty (or System.String::Empty) in .NET 4.5
问题 Short version: The C# code typeof(string).GetField("Empty").SetValue(null, "Hello world!"); Console.WriteLine(string.Empty); when compiled and run, gives output "Hello world!" under .NET version 4.0 and earlier, but gives "" under .NET 4.5 and .NET 4.5.1. How can a write to a field be ignored like that, or, who resets this field? Longer version: I have never really understood why the string.Empty field (also known as [mscorlib]System.String::Empty ) is not const (aka. literal ), see "Why isn