0
如何将从派生类初始化的对象传递给以Interface作为参数的方法?下面是我正在尝试的例子。可能吗?请提出任何更好的方法。在C#或vb.net中使用接口作为方法参数
Public Interface IFruit
Property Name As String
Property Color As String
End Interface
Public Class Fruit
Implements IFruit
Private _Name As String
Private _Color As String
Public Property Color As String Implements IFruit.Color
Get
Return _Color
End Get
Set(value As String)
_Color = value
End Set
End Property
Public Property Name As String Implements IFruit.Name
Get
Return _Name
End Get
Set(value As String)
_Name = value
End Set
End Property
End Class
Public Class FruitExtended
Inherits Fruit
Private _Taste As String
Public Property Taste() As String
Get
Return _Taste
End Get
Set(ByVal value As String)
_Taste = value
End Set
End Property
End Class
Public Class A
Public Sub ProcessFruit(F as IFruit)
'...
'Do something
End Sub
下面的代码可以工作吗?或者如何以其他方式实现这一目标?
Public Sub Test()
Dim F1 as new FruitExtended()
ProcessFruit(F1)
End sub
End Class
你试过了吗?只需要几秒钟就可以自己得到答案。 – Oded 2012-02-01 10:29:00
我建议要做的事:'昏暗的F1作为IFruit =新的FruitExtended()' – vulkanino 2012-02-01 10:36:16
谢谢,明白了。假设如果我有一个从两个接口(比如A,B)实现的类如何定义一个以接口为参数的泛型方法?我的意思是该方法中应该是什么类型的param(应该是A还是B)? – Dinu 2012-02-01 10:46:55