我剛想出了一個非常奇怪的問題,我無法弄清楚如何解決它。C#繼承 - 保存對最後一個實例的引用
我有3類,類A是B和C的基礎上,即:
class A { ... }
class B : A { ... }
class C : B { ... }
現在我想有在這些類,其存儲每個類別的最後一個對象的靜態屬性創建,例如:
class A
{
static public A lastInstance;
}
class B : A
{
public B()
{
lastInstance = this;
}
}
class C : A
{
public C()
{
lastInstance = this;
}
}
我想實現的是能夠獲得實例爲每個子類,例如:
var v1 = new B();
var v2 = new C();
var v3 = B.lastInstance; // v3 == v1 and v3 != v2
var v4 = C.lastInstance; // v4 == v2 and v4 != v3
是否有可能?
對我來說看起來很有希望的唯一方法是在C# Static instance members for each inherited class中顯示:是否真的有必要避免爲每個類手動定義一個靜態成員?
我選擇你的解決方案作爲答案,因爲它似乎是更一般和可擴展!非常感謝您的分享! – Brutus