2010-12-24 26 views
4

抽象クラスから継承する一連の数学ベースのクラスを作成しています。私は、抽象クラスにgetterとsetterをパラメータとして呼び出させたい。C#インターフェイス/抽象クラス(動的型)

public abstract dynamic Parameters {get; set;} 

その後、私は特定のタイプのパラメータを実装したい個々の数学のクラスで:クラスは期間を必要とする場合

を私はこのようにそれを行うだろう:

public override IPeriod Parameters {get; set;} 

これは」doesnのtコンパイルします。明らかに戻り値の型をdynamicに変更することができますが、それはうまくいくでしょうが、それから私はintellisenseを失います。インテリセンスを失うことなくこれを行う標準的な方法はありますか?

すべてのクラスには、{get; set;}しかし、それらは異なるタイプになります。抽象クラスからのパラメータを削除する方が良いでしょうか?

答えて

11

はい..

public MyAbstractBaseClass<T> 
{ 
    public abstract T Parameters {get; set;} 
} 

その後、あなたのようなのparamのために使用されるタイプを指定して継承することができジェネリック医薬品を使用..

public PeriodClass : MyAbstractBaseClass<IPeriod> 
{ 
    public override IPeriod Parameters {get; set;} 
} 
2

あなたはパラメータがジェネリックにする場合、次のことができますどんなタイプのものでも返す:

public abstract T Parameters<T> {get; set;} 
関連する問題