2009-06-23 38 views
2

這裏就是我想要做:在數據類型和調用匹配方法之間進行選擇?

if (a==true) 
{ 
    dbA objectInstance = new dbA(); 
} 
else 
{ 
    dbB objectInstance = new dbB(); 
} 

objectInstance.Name = "New name"; 

我得到「objectInstance不會在目前的背景下存在的名字」,我認爲是因爲高清的條件內發生。

必須有更好的模式來做到這一點 - 我應該有dbA和dbB從同一個類繼承嗎?

回答

4

是的,dbAdbB將需要一個共同的基類或接口,並且該基類或接口將需要具有Name財產作爲其公共合約的一部分。

然後,你可以這樣做:

SomeBase objectInstance; 

if (a==true) 
{ 
    objectInstance = new dbA(); 
} 
else 
{ 
    objectInstance = new dbB(); 
} 

objectInstance.Name = "New name"; 

話雖這麼說,我認爲一個接口是您最佳的選擇,除非在這裏這些類型已經共享一個基類。

+1

沒有必要分配給null開始 - 實際上,我*不會將它清楚它肯定會分配在其中一個條件。 – 2009-06-23 20:15:46

相關問題