假设我有一个基本界面,另一个继承自它:
Public Interface Parent
{stuff}
End Interface
和
Public Interface Child
Inherits Parent
{other stuff}
End Interface
我也有一个sub及其重载:
Public Sub doStuff(parameter As Parent)
{do some stuff}
End Sub
和
Public Sub doStuff(parameter As Child)
{do some other stuff}
End Sub
如果我像这样调用子,它会调用“子函数”:
Dim myParam As Child = New SomeClassImplementingChild
doStuff(myParam)
但是,有没有办法让它用这样的东西调用“子函数”,假设我在编译时不知道coolParameter的类型:
Public Sub coolFunction(coolParameter As Parent)
doStuff(coolParameter)
End Sub
Dim myParam As Child = New SomeClassImplementingChild
coolFunction(myParam)
答案 0 :(得分:0)
我找到了一种解决方法,我想我最接近解决方案的是
doStuff(Convert.ChangeType(coolParameter, coolParameter.GetType))
那将转换为"真实"在运行时键入,有效地调用正确的函数。但是,所有函数都必须公开才能被称为