我正在使用vb.net中的泛型类.
并且似乎扩展方法不能在没有指定类型的情况下应用于泛型类.
我有这个通用类
Public Class MyGeneric(Of T) 'Methods and properties go here ' ' End Class
还行吧
_ Public Sub DoSomething(ByVal myGenericDoubleObj As MyGen(Of Double)) End Sub
这不行(IDE给我的错误T未定义.)
_ Public Sub DoSomethingGeneric(ByVal myGenericObj As MyGen(Of T)) End Sub
这与.Net的静态检查有关.
对我说"你可能尝试用T型做的事可能不兼容,我不会允许你这样做."
PS我作为通用类所带来的所有痛苦来自另一个库,并在许多不同的地方使用.我很遗憾在继承的泛型类中继承和添加此方法.
如果您使扩展方法成为通用方法,它应该可以工作
即DoSomething (Of T)()只是DoSomething()的实例
_ Public Sub DoSomething(Of T)(ByVal myGenericObj As MyGeneric(Of T)) End Sub
希望这可以帮助