.NETでクラスとネストされたクラスがどのようにインスタンス化されるのですか?

私は内部に入れ子クラスの2つのレベルで非静的なクラスを持っているとしましょう。

public class A
{
     public class B
     {
         public class C{}
     }
}

作成するときのインスタンスの作成方法:

  • a)マスターレベルのクラス(new A())のインスタンス?
  • b)最も深いレベルのクラス(新しいC())のインスタンス?

そのような実装で可能なパフォーマンスとメモリの問題は何ですか?

ありがとう!

2
これは継承とは何の関係もありません。
追加された 著者 Paolo Tedesco,
"2つのレベルのサブクラスがあります。つまり、基本クラスにはサブクラスなどのメンバーがありますか?また、タイトルはかなり誤解を招き、実際には特定のシナリオについての一般的な理論的な質問をしています。
追加された 著者 BoltClock,
それらはサブクラスではありません。これらはネストされたクラスです。
追加された 著者 BoltClock,
あなたがサンプルコードの短い部分を示したら助けになるでしょう
追加された 著者 Justin,
@ホヒ - それは問題の性質を変えるのだろうか?
追加された 著者 Random,
コレント、誰かが私のためにそれを編集したので...どんな考えですか?
追加された 著者 Random,
マスタークラス、どこから言いましたか?
追加された 著者 Yurii Hohan,

1 答え

Javaとは異なり、CLRのネストされたクラスには、名前空間のスコープで宣言されたクラスとは異なる振る舞いをする特別なプロパティはありません。レイアウトと割り当ての動作は同じです。スコープにのみ影響します。クラスをネストする唯一の利点は、クラスをプライベートにできることです。

2
追加された
外側クラスのプライベートメンバーを見ることができる唯一の別のクラスであるという点で、特別なアクセス権を持っています。それはちょっと特別です。 (より正式には、内部クラスのスコープにある外部クラスの名前付きプライベートメンバーだけでなく、内部クラスは外部クラスメンバーのアクセシビリティドメイン内にあります。 )
追加された 著者 Eric Lippert,
ありがとう!それが私が探しているものです。
追加された 著者 Random,