Re: Generische Klasse und CType
- From: "Armin Zingler" <az.nospam@xxxxxxxxxx>
- Date: Tue, 22 Apr 2008 19:53:29 +0200
"Tomasz Poplawski" <tpoplawski@xxxxxxxxxxxx> schrieb
Hallo NG!
In meiner Anwendung (Windows.Forms) muss ich je nach Bedingung
bestimmte Controls ausblenden.
Ich habe es mir so vorgestellt:
Friend Class FormForHandling(Of T)
Private _frm As T
Public Sub New(ByRef frm As Form)
Me._frm = CType(frm, T)
End Sub
Friend ReadOnly Property frm() As T
Get
Return Me._frm
End Get
End Property
End Class
Damit erhalte ich Zugriff auf alle Controls und kann diese dann
Ausblenden.
Aber:
An dieser Stelle Me._frm = CType(frm, T)
erhalte ich eine Fehlermeldung:
"Der Wert vom Typ "System.Windows.Forms.Form" kann nicht zu "T"
konvertiert werden."
Warum?
Wenn du sowieso nur den Typ Form zulässt, warum deklarierst du _frm
nicht als Form?
CType kann so nicht funktionieren, da es für T keine Einschränkungen bzgl des tatsächlichen Typs gibt. Es könnte also auch "_frm As Stream" sein. Somit wäre CType(frm, Stream) nicht zulässig, da Form nicht von Stream erbt.
Wenn du eine Einschränkung hinzufügst "(Of T As {Form})" dann funktioniert auch "CType(frm, T)", da gewährleistet ist, dass der Zieltyp dem Quelltyp entspricht. Allerdings ist dann die Verwendung von Generics ziemlich sinnfrei.
Armin
.
- References:
- Generische Klasse und CType
- From: Tomasz Poplawski
- Generische Klasse und CType
- Prev by Date: Re: Generische Klasse und CType
- Next by Date: Re: brauchbares Buch gesucht!
- Previous by thread: Re: Generische Klasse und CType
- Next by thread: Re: Generische Klasse und CType
- Index(es):
Relevant Pages
|