Dot-Net
將擴展方法應用於具有泛型類型的泛型類
我正在使用 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 做的事情可能不兼容,我不會允許你這樣做。”
PS 作為通用類,我所承受的所有這些痛苦都來自另一個庫,並在許多不同的地方使用。我對在我繼承的泛型類中繼承和添加這個方法有點警惕。
如果您使擴展方法成為通用方法,它應該可以工作
即 DoSomething (Of T) () instread 只是 DoSomething()
<Extension()> _ Public Sub DoSomething(Of T)(ByVal myGenericObj As MyGeneric(Of T)) End Sub希望這可以幫助