2008-12-08 223 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