サブクラスにコードがない場合、抽象クラスにサブクラスごとに静的変数の異なるコピーを持たせたいと思います。C#では
abstract class ClassA
{
static string theValue;
// just to demonstrate
public string GetValue()
{
return theValue;
}
...
}
class ClassB : ClassA { }
class ClassC : ClassA { }
および(たとえば):
(new ClassB()).GetValue(); // returns "Banana"
(new ClassC()).GetValue(); // returns "Coconut"
私の現在の解決策はこれです:
abstract class ClassA
{
static Dictionary<Type, string> theValue;
public string GetValue()
{
return theValue[this.GetType()];
}
...
}
これは問題なく機能しますが、これを行うためのよりエレガントな方法や組み込みの方法があるのでしょうか。
これは、継承するクラスのタイプごとに静的変数の異なるコピーを持つことができますが、サブクラスを制御することはできません。