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

如何在VB.NET中使函数返回泛型值,.net,vb.net,generics,.net,Vb.net,Generics,我在VB.NET中有一个抽象类。我希望从这个类继承的所有类都返回任何有意义的值。例如,它可以是十进制、整数或字符串。如何在抽象基类中删除函数以实现此目的?这可能吗 现在,我的抽象类如下所示: Public MustInherit Class ConversionBaseClass Public MustOverride Function GetConvertedObject() End Class 我知道它的返回值需要修改,但我不确定是什么。也许是这样的 Public MustOv

我在VB.NET中有一个抽象类。我希望从这个类继承的所有类都返回任何有意义的值。例如,它可以是十进制、整数或字符串。如何在抽象基类中删除函数以实现此目的?这可能吗

现在,我的抽象类如下所示:

Public MustInherit Class ConversionBaseClass

    Public MustOverride Function GetConvertedObject()

End Class
我知道它的返回值需要修改,但我不确定是什么。也许是这样的

Public MustOverride Function GetConvertedObject() Of (T)

应该这样做。

使基类是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

您的继承类是否总是返回相同的类型(每个继承类),例如BoolConversion总是返回bool?我已经用一个例子更新了我的答案谢谢,这正是我所需要的。您是否打算让它成为一个“公共”类?咆哮,我的键盘总是这样做,当我使用一个名为“count”的变量时,情况更糟!如果要转换为可继承的类类型,我建议使用接口
IConversionInterface(Of Out T)
,而不是抽象类。如果这样做,则
IConversionInterface(福特野马敞篷车)
的实现将可用作
IConversionInterface(车辆)
public Class IntConversion Inherits ConversionBaseClass(Of Integer) 

   Public Overrides Function GetConvertedObject() As Integer