我是使用OOP進行編程的新手,我試圖正確使用繼承的概念。對不同類型的變量使用繼承方法
這裏是這裏的代碼是什麼我想(Link Here)
public class Base
{
//Type?
public abstract static object Adapter();
public static DataTable GetWOCost(DateTime Date, string WO)
{
Application.UseWaitCursor = true;
DataTable dt = new DataTable();
try
{
//Cast?
dt = Adapter().GetDataByWO(WO, Date);
Application.UseWaitCursor = false;
return dt;
} catch (Exception)
{
return null;
}
}
}
public class Materiel : Base
{
static AllieesDBTableAdapters.CoutMatTableAdapter Adapter()
{
return new AllieesDBTableAdapters.CoutMatTableAdapter();
}
}
public class Labor : Base
{
static AllieesDBTableAdapters.CoutLaborTableAdapter Adapter()
{
return new AllieesDBTableAdapters.CoutLaborTableAdapter();
}
}
起初,我所有的代碼是在材料類。但是,我不得不添加第二個相同的類,而是添加了不同的SQL適配器。我嘗試了不同的事情,但上面的代碼有一個很大的問題。
由於類型正在改變我使用的對象,但它不會沒有強制轉換。但是因爲我不知道它是什麼類型,所以有兩個或更多具有GetWOCost方法的類,但使用不同的適配器的正確方法是什麼?
也許我應該更改爲.NET 4.0並使用動態對象?
編輯:此外似乎有抽象和靜態的問題,所以我不能在我的方法GetWOCost()沒有一個Adapter()(在基類中)的實例上使用靜態修改器。似乎只是複製粘貼會更容易,但我正試圖找出正確的方法來做到這一點。
您絕對不應該爲此任務使用動態。這不是它的設計目的。 – driis 2010-09-03 17:25:10