以下是我要做的事情:
if (a==true)
{
dbA objectInstance = new dbA();
}
else
{
dbB objectInstance = new dbB();
}
objectInstance.Name = "New name";
我得到“当前上下文中不存在名称objectInstance”,我假设因为def发生在条件内。
必须有一个更好的模式来实现这一点 - 我应该从同一个类继承dbA和dbB吗?
答案 0 :(得分:4)
是的,dbA
和dbB
需要一个公共基类或接口,并且该基类或接口需要将Name
属性作为其公共合同的一部分。
然后你可以这样做:
SomeBase objectInstance;
if (a==true)
{
objectInstance = new dbA();
}
else
{
objectInstance = new dbB();
}
objectInstance.Name = "New name";
话虽如此,我认为接口是你最好的选择,除非这些类型已经共享基类。