【发布时间】:2015-11-12 13:59:15
【问题描述】:
假设我有一个基本接口,另一个继承自它:
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)
【问题讨论】:
-
您可以测试类型以查看它是否实现了
IChild,如果是,则在调用该方法之前对其进行转换。最后一部分有点模糊,因为DoStuff已经超载了 -
问题是
coolFunction不知道IChild,所以无法测试coolParameter看是否实现
标签: vb.net interface overloading