.net - una - el tipo t debe ser un tipo de referencia
Aplicando el método de extensión a la clase genérica con tipo genérico (1)
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 esta bien
<Extension()> _
Public Sub DoSomething(ByVal myGenericDoubleObj As MyGen(Of Double))
End Sub
Esto NO es correcto (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?
Diciéndome "Algo que puedes intentar haciendo con Type T puede no ser compatible y no te permitiré hacerlo".
PD: todo este dolor que he tomado como clase genérica proviene de otra biblioteca, y se usa en muchos lugares diferentes. Tengo poco cuidado de heredar y agregar este método en mi clase genérica heredada.
Si convierte su método de extensión en un método genérico, debería funcionar
es decir, DoSomething (Of T) () instread de solo DoSomething ()
<Extension()> _
Public Sub DoSomething(Of T)(ByVal myGenericObj As MyGeneric(Of T))
End Sub
Espero que esto ayude