在只是尝试使用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?的重复。