我是使用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