Я работал с универсальным классом в 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. Вся эта боль, которую я испытал, будучи родовым классом, пришла из другой библиотеки, и использовалась во многих разных местах. Я немного опасаюсь наследовать и добавлять этот метод в мой унаследованный универсальный класс.