【C#】内部クラスから外部クラスのprivateフィールドにアクセスする

【C#】内部クラスから外部クラスのprivateフィールドにアクセスする
スポンサーリンク

こんにちは。ゆとり(@yutori_techblog)です。

先日、内部クラス(入れ子クラス)から外部クラス(親クラス)へのアクセスがなぜか出来なくて困りましたのでメモします。

内部クラスから外部クラスのprivateフィールドにアクセスする

通常privateフィールドには自分自身のクラスからしかアクセスできませんが、入れ子にされたクラスからはprivateであってもアクセスできます。
親は子に隠し事をしないというわけですね。

しかし、次のように普通にアクセスできるかといえばできません。

ちゃんとOuterClassのフィールドであることは認識できているようですが、なぜか「静的でない!」などという的違いかのようなエラーが出てしまいます。

外部クラスのインスタンスを持てばOK

解決策は、「外部クラスのインスタンスを取得してそこからアクセスする」でした。

エラーが出なくなりました。