选择数据类型和呼叫匹配方法?

时间:2009-06-23 20:10:35

标签: c# oop inheritance

以下是我要做的事情:

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

objectInstance.Name = "New name";

我得到“当前上下文中不存在名称objectInstance”,我假设因为def发生在条件内。

必须有一个更好的模式来实现这一点 - 我应该从同一个类继承dbA和dbB吗?

1 个答案:

答案 0 :(得分:4)

是的,dbAdbB需要一个公共基类或接口,并且该基类或接口需要将Name属性作为其公共合同的一部分。

然后你可以这样做:

SomeBase objectInstance;

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

objectInstance.Name = "New name";

话虽如此,我认为接口是你最好的选择,除非这些类型已经共享基类。