Да, dbA
и dbB
потребуется общий базовый класс или интерфейс, и этот базовый класс или интерфейс должен иметь свойство Name
как часть своего публичного контракта.
Тогда вы могли бы сделать это:
SomeBase objectInstance;
if (a==true)
{
objectInstance = new dbA();
}
else
{
objectInstance = new dbB();
}
objectInstance.Name = "New name";
При этом я считаю, что интерфейс - ваш лучший выбор, если только эти типы не разделяют базовый класс.