目次:
定義-ネストされたタイプとはどういう意味ですか?
C#の入れ子型は、既存のクラスまたは構造体内で宣言された型です。 コンパイル単位または名前空間内で直接宣言される非ネスト型とは異なり、ネスト型は包含(または外部)型のスコープ内で定義されます。
ネストされたタイプは、スコープ、可視性、および有効期間が含まれるタイプ内で終了する場合にのみ使用され、他のタイプには公開されません。 コレクション型内の列挙子メンバーは、通常、コレクションを反復処理するネスト型として実装されます。 イテレータとして、列挙子は、データコレクションの基になる構造に関係なく、同じクライアント側のロジックを使用してコレクションを繰り返すことができます。
一般に、ネストされた型は、論理的に包含型に属する状況でのみ使用されます。 包含型がネストされた型に完全に依存する場合に実装され、包含型の実装の詳細をカプセル化するのに役立ちます。 ネストされた型を実装するための要件なしで、その実装用にネストされた型を持つ包含型が直接使用されるシナリオでよく使用されます。
Techopediaはネストされたタイプを説明します
ネストされた型は、パブリックレベルのアクセシビリティで宣言し、完全修飾名を使用することにより、プログラム内のどこからでもアクセスできます。
たとえば、AddressInformationはEmployee型内で宣言されたネストされた型であり、完全修飾名Employee.AddressInformationを使用してアクセスできます。
入れ子型には次の主要なプロパティがあります。
- プライベート、パブリック、保護、保護された内部および内部を含むさまざまな形式のアクセシビリティを持つことができます。 デフォルトでは、プライベートなアクセシビリティがあります。
- 継承されたプライベートおよび保護されたメンバーを含む、包含型のプライベートおよび保護されたメンバーにアクセスできます。 これらのメンバーにアクセスするには、包含型のインスタンスを、コンストラクターを介してネストされた型に渡す必要があります。
- 複数のネストレベルが許可されているため、あるネストされたクラスのコードブロックを別のネストされたクラス内で定義できます。
- 包含型から継承でき、継承することもできます。
- ネストされた型のプライベートメンバは、包含型からは見えません。
ネストされた型は、クライアントコードによるインスタンス化のために公開する必要がある場合、またはクライアントコードで直接参照される場合は使用しないでください。 論理グループ構造の名前空間の代わりに使用することはできません。
