繼承一個類的所有單身我有以下情形:把那通過反射
class Cow : Animal
{
public int animalID;
private static Cow instance;
public static Cow Instance
{
get
{
if (instance == null) instance = new Cow();
return instance;
}
}
private Cow() { }
}
Cow
是從Animal
繼承一個普通的單。 我需要什麼:一個Dictionary<int, Animal>
與所有單身繼承從類型Animal
,這樣,a)該列表首先填充所有現有的單身[已經實例化],和b)添加到我的字典項目的方法尚未實例化。
對實現的類牛,山羊和斑馬我想這種行爲:
public class Cow : Animal { ... }
public class Goat : Animal { ... }
public class Zebra : Animal { ... }
public static class AnimalManagement
{
static Dictionary<int, Animal> zoo = new Dictionary<int, Animal>();
static void FillDictionary();
static Animal GetAnimalID(int animalID);
}
public Main()
{
var a1 = Cow.Instance;
var a2 = Goat.Instance;
AnimalManagement.FillDictionary();
// Now, zoo.Count() == 2
// Suppose I seeking for Zebra, with animalID == 5:
Animal zebra = AnimalManagement.GetAnimalID(5);
// Thus, zoo.Count() == 3 and zeebra singleton was
// instantiated and added to internal dic of AnimalManagement.
}
所以我想,以填補字典,通過反射運行時間。 我的朋友可以嗎?
在此先感謝!
爲什麼你想/需要每個類類型的單身人士? – 2012-07-17 16:17:18
不幸的是我們正在使用的類模型。目前無法更改。 – 2012-07-17 16:20:21
是否有可能將此字典添加到基類「Animal」,在創建單例時(從派生類中)同步它,然後公開它? – 2012-07-17 16:24:11