各クラスが抽象基本クラスから派生する単純なクラス階層が与えられます。すべての派生クラスは、基本クラスが特定の基本メソッドで使用する列挙型の「値」を何らかの方法で提供する必要があります。
例えば
基本クラス:
public abstract class AbstractFoo
{
bool SaveFoo()
{
switch (BarType){...}
}
}
および派生クラス
public class BananaFoo:AbstractFoo
{
//barttype = fruit;
}
public class WhaleFoo:AbstractFoo
{
//barttype = mammal;
}
AbstractFoo から派生したすべてのクラスがプロパティ「enum BarType」を実装していることを確認する方法はいくつかあります。
public abstract BarType BarType{get;}
次に、各派生クラスで BarType を実装して正しい型を返すか、抽象メソッドを追加して非常に類似したことを行います。
public BarType BarType{get{return _bartype;}}
または、フィールドを返す具体的なメソッドを追加します。次に、フィールドを追加することを覚えておく必要がありますが、入力がはるかに少なくなります (C&P)?
これを行うための推奨される方法は何ですか?