Aplicación del método de extensión a la clase genérica con tipo genérico
-
20-08-2019 - |
Pregunta
Estaba trabajando con la clase genérica en vb.net.
Y parece que el método de extensión no se puede aplicar a la clase genérica sin especificar el tipo.
Tengo esta clase genérica
Public Class MyGeneric(Of T)
'Methods and properties go here
'
'
End Class
Esto está bien
<Extension()> _
Public Sub DoSomething(ByVal myGenericDoubleObj As MyGen(Of Double))
End Sub
Esto NO está bien (IDE me da el error T como no definido)
<Extension()> _
Public Sub DoSomethingGeneric(ByVal myGenericObj As MyGen(Of T))
End Sub
¿Tiene esto algo que ver con la comprobación estática de .Net.
Decirme " Algo que puedes intentar hacer con el Tipo T puede no ser compatible y no te permitiré que lo hagas. & Quot;
P.S. Todo este dolor que he tomado como Clase Genérica proviene de otra biblioteca, y lo usé en muchos lugares diferentes. Soy un poco cuidadoso de heredar y agregar este método en mi clase genérica heredada.
Solución
Si convierte su método de extensión en un método genérico, debería funcionar
es decir, DoSomething (Of T) () incrustado de solo DoSomething ()
<Extension()> _
Public Sub DoSomething(Of T)(ByVal myGenericObj As MyGeneric(Of T))
End Sub
Espero que esto ayude