方法 : コンポーネント コンテナーを拡張する
コンポーネント コンテナーは、完全に拡張可能です。 Container クラスの継承、プロパティやメソッドの追加、規則を強化するためのカスタム機能の追加、基本メソッドのオーバーライド、コンテナーに含めるその他のカスタム機能の追加などができます。 コンテナーおよびコンテナーの拡張の詳細については、「コンテナー、Site、およびコンポーネント」を参照してください。
Container は、他の基本クラスの場合と同じように拡張できます。 基本クラスのプロパティを継承するクラスを作成し、拡張対象の基本メソッドをオーバーライドし、必要なプロパティやメソッドを追加します。 新しいクラスは標準の Container と同じように使用できます。また、エンコードした新しい機能をすべて使用できます。
Container 基本クラスを拡張するには
Container クラスを継承する新しいクラスを宣言します。
Public Class myContainer Inherits System.ComponentModel.Container End Class
class myContainer: System.ComponentModel.Container { }
class myContainer extends System.ComponentModel.Container { }
基本クラスのメソッドをオーバーライドして新しい機能を追加します。 Add メソッドがどのようにオーバーライドされるかを次の例に示します。
' 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()); } }
public void Add(System.ComponentModel.IComponent component) throws NonWidgetException { if ( component instanceof Widget ) { super.Add(component); } else { throw new NonWidgetException() ; } }
新しいコンテナーに含める新しいプロパティまたはメソッドを追加します。