次の方法で共有


入れ子にされた型

入れ子にされた型とは、他の型のメンバーである型です。 入れ子にされた型はその宣言型と密に結合されているため、汎用型としては使用できません。 入れ子にされた型は、開発者に混乱を招くことがあるため、特別な理由がない限り、パブリックに参照可能にすることはお勧めできません。 適切にデザインされたライブラリでは、入れ子にされた型を使ってオブジェクトをインスタンス化したり、変数を宣言したりすることが必要になることはほとんどありません。

入れ子にされた型は、宣言型で、入れ子にされた型のインスタンスを使用したり作成したりする場合に便利で、入れ子にされた型の使用はパブリック メンバーに公開されません。

入れ子にされた型とその外部の型の関係においてこのようなメンバー アクセシビリティ セマンティクスが必要な場合は、入れ子にされた型を使用してください。

入れ子にされた型はその宣言型のメンバーとして扱われるため、宣言型の他のすべてのメンバーにアクセスできます。

パブリックの入れ子にされた型は、論理的なグループ化構成体として使用しないでください。代わりに名前空間を使用してください。

入れ子にされた型をパブリックに公開することは避けてください。 ただし、サブクラス化などの高度なカスタマイズ シナリオにおいて、ごくまれに入れ子にされた型の変数を宣言する必要がある場合を除きます。

入れ子にされた型が宣言型の外部で参照される可能性がある場合は、入れ子にされた型を使用しないでください。

一般的なシナリオでは、入れ子にされた型の変数の宣言とオブジェクトのインスタンス化は必要ありません。 たとえば、クラスで定義されたイベントを処理するイベント ハンドラー デリゲートは、クラスで入れ子にしないでください。

入れ子にされた型をクライアント コードでインスタンス化する必要がある場合は、入れ子にされた型を使用しないでください。 型にパブリック コンストラクターが存在する場合、入れ子にはしません。

入れ子にされた型は、その宣言型でのみインスタンス化し、使用するのが理想的です。 入れ子にされた型にパブリック コンストラクターが存在する場合、この型には、その宣言型とは別個の用途があることを示しています。 通常、入れ子にされた型は、その宣言型以外の型に対するタスクを実行できません。 型に広範な用途がある場合、入れ子にはしません。

入れ子にされた型をインターフェイスのメンバーとして定義しないでください。 このような構成要素は、多くの言語でサポートされていません。

Portions Copyright 2005 Microsoft Corporation. All rights reserved.

Portions Copyright Addison-Wesley Corporation. All rights reserved.

設計ガイドラインの詳細についてを参照してください、「フレームワークの設計ガイドライン。規則、慣用句、および再利用可能なパターン。ネット ライブラリ」本クシシュトフ Cwalina、ブラッド エイブラムス、アスキー、2005 年発表しました。

参照

概念

型と名前空間

その他の技術情報

型のデザインのガイドライン

クラス ライブラリ開発のデザイン ガイドライン