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.

War es hilfreich?

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top