我有一些 VB 代码(实际上是 VBA),除了它运行的类型之外,它们基本相同。因为我认为 DRY 原则是软件开发的一个很好的指导原则,所以我想为所有需要操作的不同类型编写一个例程。例如,如果我有两个这样的代码片段:
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 的某些功能。