方法 : コンポーネント コンテナーを拡張する
コンポーネント コンテナーは、完全に拡張可能です。Container クラスの継承、プロパティやメソッドの追加、規則を強化するためのカスタム機能の追加、基本メソッドのオーバーライド、コンテナーに含めるその他のカスタム機能の追加などができます。コンテナーおよびコンテナーの拡張の詳細については、「コンテナー、Site、およびコンポーネント」を参照してください。
Container は、他の基本クラスの場合と同じように拡張できます。基本クラスのプロパティを継承するクラスを作成し、拡張対象の基本メソッドをオーバーライドし、必要なプロパティやメソッドを追加します。新しいクラスは標準の Container と同じように使用できます。また、エンコードした新しい機能をすべて使用できます。
Container 基本クラスを拡張するには
Container クラスを継承する新しいクラスを宣言します。
Public Class myContainer Inherits System.ComponentModel.Container End Class
class myContainer: System.ComponentModel.Container { }
基本クラスのメソッドをオーバーライドして新しい機能を追加します。Add メソッドがどのようにオーバーライドされるかを次の例に示します。
[!メモ]
実際には、Container には Add のオーバーロードが 2 つあります。この例では、それぞれに対してオーバーライドを用意できます。
' Because Add is overloaded, this line includes the Overloads keyword. Public Overloads Overrides Sub Add(ByVal component As _ System.ComponentModel.IComponent) ' Determines if the component can be added to the container. If TypeOf component Is Widget Then ' Calls the base Add function to add the component. MyBase.Add(component) Else ' Throws an exception. Throw New NonWidgetException() End If End Sub
public override void Add(System.ComponentModel.IComponent component) { if (component is Widget) base.Add(component); else { throw(new NonWidgetException()); } }
新しいコンテナーに含める新しいプロパティまたはメソッドを追加します。