2009-03-19 7 views
1

C#Baseクラスで抽象プロパティを作成してサブクラスを実装すると、サブクラスがそのプロパティを設定した後で、そのBaseクラスのメソッドの1つでそのプロパティを参照して使用できますか?Baseクラスのメソッドで抽象プロパティ値を使用できますか?

サブクラスの値をベースクラスに渡して並べ替えたいので、ベースクラスで、そのベースクラスメソッドでロジックを使用できるようにします。

また、プロパティではなく、フィールドではなく、同じアイデア...しかし、私はそのフィールドがサブクラスに設定されるようにする必要があります。サブクラスで抽象フィールドを使って何らかのフラグを設定することができれば、私は本当にプロパティを必要としません。そのため、サブクラスがHttpRequestを送信するなど、基本クラスがそのフラグを使用できるようにすることができます。

基本的に、このベースを使用して任意のサブクラスでフラグを設定して、trueまたはfalseと言うことができるようにして、ベースクラスのSendRequestメソッドが、ベースクラスで設定したいくつかのURIから選択するかどうかを知るようにしたい。そのフラグは、サブクラスに代わってHttpRequestを送信するために、基本クラスのSendRequestメソッドで使用する形式を決定します。各サブクラスは、そのサブクラスで基本クラスが使用するURI形式が異なるためです。

答えて

7

はい、それは基本的に抽象プロパティとメソッドの全目的です。

class Base 
{ 
    protected Boolean Flag { get; set; } 

    public void Foo() 
    { 
     if (this.Flag) 
     { 
      // logic here 
     } 
    } 
} 

class Child : Base 
{ 
    public Child() 
    { 
     // you can set Flag anywhere you wish 
     this.Flag = true; 
    } 
} 

私はあなたがabstractする何かを必要とは思わない:

1

は、それが動作します。このようなことのように聞こえます。子タイプでFlagを設定し、いずれかのタイプの条件ロジックでそれをチェックすることができます。

+0

はい、本当にありがとうございます。派生クラスがプロパティ用の記憶域をある高度な方法で実装した場合、プロパティは抽象型である必要があります。 1つはレジストリを使用し、別のデータベースはデータベースを使用し、別のデータベースはメモリのプレーンフィールドを使用します。 –

関連する問題