Zuweisungsproblem (delegate, generisch)

07/10/2008 - 16:26 von Armin Zingler | Report spam
Hallo miteianander,

ich habe folgenden Code: (VB 2008)


Public Class Form1

Class C(Of T)
Public Sub test(ByVal liste As List(Of T))
End Sub
End Class

Delegate Sub TestDelegate(Of T)(ByVal liste As IEnumerable(Of T))

Private Sub Form1_Load( _
ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles MyBase.Load

Dim o As New C(Of Integer)
Dim del As New TestDelegate(Of Integer)(AddressOf o.test)

End Sub
End Class


Warum kommt in der letzten Zeile ("Dim del...") dieser Fehler:

"Option Strict On" erlaubt keine Einschrànkungen in impliziten
Typkonvertierungen zwischen der Public Sub test(liste As
System.Collections.Generic.List(Of Integer))-Methode und dem Delegaten
"Delegate Sub testdelegate(Of Integer)(liste As
System.Collections.Generic.IEnumerable(Of Integer))"


Da List(Of T) die Schnittstelle IEnumerable(Of T) implementiert, sehe ich
spontan keinen Grund, warum das nicht geht. Ich sehe v.a. keine
*Einschrànkung*, wie es in der Fehlermeldung heißt. Mit Option Strict Off
làsst es sich natürlich kompilieren, aber ich wüsste nicht, wann es
andernfalls einen Laufzeitfehler geben könnte. Was übersehe ich denn?


Armin
 

Lesen sie die antworten

#1 Armin Zingler
07/10/2008 - 16:48 | Warnen spam
In der C#-Hilfe übrigens als "Kontravarinaz" von Delegaten beschrieben. In
der VB-Hilfe leider nicht auffindbar.

oder doch unter "Gelockerte Delegatenkonvertierung". Na ja, solche
Fremdwörter wie "Kontravarinaz" wàren für uns VB-ler auch zu überfordernd!
;)

Ändert aber nichts an meiner Frage.


Armin

Ähnliche fragen