2

一般的な「デバイス」タイプの抽象基本クラスがあり、派生した特定のデバイス クラスがそれぞれの違いに基づいてリストを初期化するように要求したいと考えています。

派生クラスをアクティブに設定する場合、リストを調べてパラメーターもアクティブに設定する必要があります。各派生クラスは、独自のパラメーターをリストに挿入します。

関連するコードは次のとおりです。

基本クラス:

        abstract public class Device : Common, IDisposable
        {
          abstract public Boolean bActive
          {
            get;
            set;
          }

          abstract List<Parameters> ActiveParameters;
          ...
        }

派生クラスからリストに挿入されるパラメーターがわからないため、基本クラスでリストを初期化したくありません。このコードは、抽象フィールドを持つことができないというエラーを生成しますが、それは理解していますが、基本クラスからフィールドを初期化するために派生クラスを要求する方法はありますか?

4

2 に答える 2

3

このコードは、抽象フィールドを持つことができないというエラーを生成しますが、それは理解していますが、基本クラスからフィールドを初期化するために派生クラスを要求する方法はありますか?

これを実装する必要がある場合は、API の一部にする必要があります。これを処理するには、これを保護されたプロパティにすることができます。これにより、すべての派生クラスで強制的に実装されます。

protected abstract List<Parameters> ActiveParameters { get; }
于 2013-04-17T19:55:15.790 に答える