这是我正在尝试做的事情:
if (a==true)
{
dbA objectInstance = new dbA();
}
else
{
dbB objectInstance = new dbB();
}
objectInstance.Name = "New name";
我得到“名称objectInstance在当前上下文中不存在”的假设,因为def发生在条件内部。
必须有一个更好的模式来执行此操作-我是否应该从同一类继承dbA和dbB?
最佳答案
是的,dbA
和dbB
需要一个公共的基类或接口,并且该基类或接口需要具有Name
属性作为其公共合同的一部分。
然后,您可以这样做:
SomeBase objectInstance;
if (a==true)
{
objectInstance = new dbA();
}
else
{
objectInstance = new dbB();
}
objectInstance.Name = "New name";
话虽这么说,我认为接口是您的最佳选择,除非这些类型已经共享了基类。
关于c# - 在数据类型和调用匹配方法之间选择?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1034880/