2008-12-08 221 views
10

我正在使用vb.net中的泛型类。
而且似乎扩展方法不能应用于泛型类而不指定类型。将扩展方法应用于泛型类型泛型类型

我有这个通用类,

Public Class MyGeneric(Of T) 
    'Methods and properties go here 
    ' 
    ' 
End Class 

这是确定

<Extension()> _ 
Public Sub DoSomething(ByVal myGenericDoubleObj As MyGen(Of Double)) 

End Sub 

这是不正常(IDE给我的错误T作为没有定义。)

<Extension()> _ 
Public Sub DoSomethingGeneric(ByVal myGenericObj As MyGen(Of T)) 

End Sub 

这是与.Net的静态检查有关。
对我说“你可能试着用Type T做的事情可能不兼容,我不会允许你这样做。”

P.S.所有这些作为泛型的痛苦来自另一个库,并在许多不同的地方使用。我对在继承的泛型类中继承和添加此方法有点谨慎。

+1

的instread + 1为我正在寻找的 – 2009-07-10 13:37:04

回答

15

如果你把你的扩展方法的泛型方法它应该工作

即DoSomething的(Of T)已()只是DoSomething的()

<Extension()> _ 
Public Sub DoSomething(Of T)(ByVal myGenericObj As MyGeneric(Of T)) 
End Sub 

希望这有助于

+0

我得到它的工作。 我的小愚蠢。 谢谢。 – Biswanath 2008-12-08 10:30:31