Ваши Customer1
и Customer2
должны наследоваться от общего класса AbstractCustomer
или ICustomer
интерфейса.
Это позволит вам использовать single метод, который обрабатываетоба, а также устраняют необходимость в дженериках:
static void DoSomething(ICustomer customer)
{
//... code here ...
InitializeCustomer(customer);
//... code here ...
}
static void InitializeCustomer(ICustomer c)
{
c.Reference = 1234;
c.Name = "John";
}
Как отмечает @ Рид Копси , это решение предполагает, что оба типа имеют одинаковые члены.
Если вы предоставляете одинаковый метод инициализации для обоих (это условия сигнатуры метода), вы можете инициализировать их отдельно.