次の方法で共有


シールされていないクラス

更新 : 2007 年 11 月

シールされていないクラスを使用すると、他のクラスはそのクラスを継承できます。プロテクト メンバや仮想メンバなど、他の多くの機能拡張機構では、クラスがシールされていないことが要求されます。これらの追加機構は型の機能を追加またはカスタマイズするための強力な方法を追加しますが、あまりコストはかかりません。シールされていないクラスは、追加の機能拡張機構を使用しない場合でも、数多くの開発シナリオで使用できます。

低コストではあるが、高く評価された機能拡張をフレームワークに提供するための主要な方法として、仮想メンバまたはプロテクト メンバを持たない、シールされていないクラスを検討します。

既定では、ほとんどのクラスはシールされていません。これにより、開発者は、特定のシナリオに基づいてクラスをカスタマイズできます。たとえば、クラスがシールされていない場合に、クラスから派生した型にコンストラクタを追加し、そのコンストラクタを使用して、基本クラスのプロパティをシナリオに必要な値に初期化できます。また、シナリオ固有の既定値を渡すメソッドのオーバーロードを追加することもできます。

Portions Copyright 2005 Microsoft Corporation.All rights reserved.

Portions Copyright Addison-Wesley Corporation.All rights reserved.

デザイン ガイドラインの詳細については、2005 年に Addison-Wesley から出版されている Krzysztof Cwalina、Brad Abrams 共著の『Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries』を参照してください。

参照

概念

クラスのシールによる機能拡張の制限

その他の技術情報

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

機能拡張のデザイン