如何在VB.NET中使函数返回泛型值

时间:2011-09-16 14:03:10

标签: .net vb.net generics

我在VB.NET中有一个抽象类。我希望从这个类继承的所有类都返回任何有意义的值。例如,它可以是Decimal,Integer,String。如何对抽象基类中的函数进行delcare以实现此目的?这甚至可能吗?

现在,我的抽象类看起来像这样:

Public MustInherit Class ConversionBaseClass

    Public MustOverride Function GetConvertedObject()

End Class

我知道它的返回值需要修改,但我不确定是什么。这样的事可能吗?

Public MustOverride Function GetConvertedObject() Of (T)

2 个答案:

答案 0 :(得分:5)

Public MustOverride Function GetConvertedObject(Of T)() As T

应该这样做。

答案 1 :(得分:2)

使Base类成为T的泛型,然后您可以将它用于方法

Public MustInherit Class ConversionBaseClass (Of T) 

    Public MustOverride Function GetConvertedObject() As T

End Class

然后定义继承类,如

public Class IntConversion Inherits ConversionBaseClass(Of Integer) 

   Public Overrides Function GetConvertedObject() As Integer