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
}
}
リフレクションで読み取り専用フィールドを変更できるのはなぜですか?
質問は「リフレクションによる設定が許可されている理由」であり、「その方法」ではありません。.