リフレクションを使用すると多くのことができるので、コンストラクターの実行が完了した後にプライベート読み取り専用フィールドを変更できるかどうか疑問に思っています。
(注: 単なる好奇心です)
public class Foo
{
private readonly int bar;
public Foo(int num)
{
bar = num;
}
public int GetBar()
{
return bar;
}
}
Foo foo = new Foo(123);
Console.WriteLine(foo.GetBar()); // display 123
// reflection code here...
Console.WriteLine(foo.GetBar()); // display 456
ベストアンサー1
あなたはできる:
typeof(Foo)
.GetField("bar",BindingFlags.Instance|BindingFlags.NonPublic)
.SetValue(foo,567);