У меня есть некоторый код VB (фактически VBA), который в основном такой же, за исключением типа, на котором он работает. Поскольку я считаю, что принцип СУХОЙ является хорошим руководящим принципом для разработки программного обеспечения, я хочу написать одну подпрограмму для всех различных типов, над которыми нужно работать. Например, если бы у меня было два фрагмента кода, подобных этим:
Dim i as Obj1
Set i = RoutineThatReturnsObj1()
i.property = newvalue
Dim i as Obj2
Set i = RoutineThatReturnsObj2()
i.property = newvalue
Мне бы хотелось, чтобы что-то подобное обрабатывало оба экземпляра:
Sub MyRoutine(o as ObjectType, r as RoutineToInitializeObject, newvalue as value)
Dim i as o
Set i = r
i.property = newvalue
End Sub
Если бы я использовал C ++, я бы сгенерировал шаблон и больше не говорил об этом. Но я использую VBA. Я вполне уверен, что в определении языка VBA нет таких возможностей, как шаблоны C ++, но есть ли другие способы, с помощью которых я мог бы достичь того же эффекта? Я предполагаю, что ответ - нет, но я спрашиваю здесь, потому что, возможно, есть какая-то особенность VBA, которую я пропустил.