Die Anwendung Erweiterung Methode generische Klasse mit generischem Typ
-
20-08-2019 - |
Frage
ich mit der generischen Klasse in vb.net arbeitete.
Und es scheint, Extension-Methode kann nicht auf generische Klasse angewandt werden, ohne den Typen angeben.
Ich habe diese allgemeine Klasse
Public Class MyGeneric(Of T)
'Methods and properties go here
'
'
End Class
Das ist Ok
<Extension()> _
Public Sub DoSomething(ByVal myGenericDoubleObj As MyGen(Of Double))
End Sub
Das ist nicht ok (IDE gibt mir Fehler T als nicht definiert.)
<Extension()> _
Public Sub DoSomethingGeneric(ByVal myGenericObj As MyGen(Of T))
End Sub
Ist das etwas mit der statischen Überprüfung des .Net zu tun.
Zu sagen mir „Etwas, was mit zu tun mit Typ T können Sie versuchen, ist möglicherweise nicht kompatibel, und ich werde Sie es nicht zulassen, dass tun.“
P. S. All diese Schmerzen, die ich als generische Klasse genommen haben kommen aus einer anderen Bibliothek, und an vielen verschiedenen Orten eingesetzt. Ich bin wenig vorsichtig zu erben und das Hinzufügen dieser Methode in meiner ererbten generischen Klasse.
Lösung
Wenn Sie Ihre Erweiterung Methode eine generische Methode machen sollte es funktionieren
d.h DoSomething (Of T) () instread von nur DoSomething ()
<Extension()> _
Public Sub DoSomething(Of T)(ByVal myGenericObj As MyGeneric(Of T))
End Sub
Hope, das hilft