我是用在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的静态检查。结果 我说:“这东西你可以尝试用T型做的是可能不兼容,我不会让你做到这一点。”

P.S。所有这种痛苦我已经作为通用类是从另一个库,而在许多不同的地方使用。我有点担心继承和在我继承了通用类中添加此方法。

有帮助吗?

解决方案

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

即DoSomething的的(OF T)只是DoSomething的(的()instread)

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

希望这有助于

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top