できることの 1 つは、基本クラスに抽象メソッドまたはプロパティを配置することです。これにより、継承者がこのメソッドを実装することが強制され、ベースは確実にそれを呼び出すことができます。
protected abstract TextBox MyTextBox { get; }
継承されたすべてのページはこのメソッドを実装する必要があり、理想的には MyTextBox を返します。
上で定義したようにインターフェースを作成するか、そのコントロールのセットを持つページを表す他の Base から継承する別の PageBase を作成することができます。
編集:
実装例として。基本クラスが MyPageBase と呼ばれ、HomePage.aspx に ID="TextBox1" の Textbox があると仮定します。
ベースで抽象プロパティを定義します
public abstract class MyPageBase : Page
{
protected abstract TextBox MyTextBox { get; }
}
ページ上:
public partial class HomePage : MyPageBase
{
protected override TextBox MyTextBox
{
get
{
return this.TextBox1;
}
}
}
抽象化されているため、ベース内でプロパティにアクセスできます。これはインターフェイスのように機能し、実装する必要があります。次に、継承者がコントラクトを尊重すると仮定して、ベースはこのプロパティにアクセスできます。
this.MyTextBox.Text = "Change the text";
テキストまたは別の特定のプロパティを変更するだけの場合は、それをより適切にカプセル化し、特定のテキスト ボックスのテキスト プロパティのみに getter/setter を提供する方が理想的です。このサンプルでは、テキスト ボックスの実際のインスタンスを変更することはできませんが、そのプロパティにアクセスして変更することはできます。