刚玩c#的时候,发现了一件奇怪的事情。
这是代码:
class Program
{
static void Main(string[] args)
{
System.Diagnostics.Debug.Write(string.Empty);
typeof(string)
.GetField("Empty", BindingFlags.Static | BindingFlags.Public)
.SetValue(null, "Tolgahan");
Console.WriteLine(string.Empty);
// output : Tolgahan
}
}
为什么反射让我们改变只读字段?
问题是“为什么允许通过反射进行设置”,而不是“如何做”,所以它不是Can I change a private readonly field in C# using reflection? .