CLR: .Net / Mono / Boo / Otros CLR > VB .NET
Error con DirectCast y ArrayList
(1/1)
krnl64:
Hola a todos.
Verán tengo un ArrayList en el que quiero meter varios tipos de objetos.
He heredado del control TextBox y le he añadido otra propiedad Tag llamada Tag2 para almacenar datos que necesite.
La declaracion del objeto que almacena el contenido de la propiedad es:
--- Código: vb.net --- private _tag2 as Object
y la declaracion de la propiedad:
--- Código: vb.net --- <TypeConverter(GetType(StringConverter))> _ <Browsable(True), DescriptionAttribute("Propiedad Tag 2"), CategoryAttribute("EProperties")> _ Public Property Tag2() As Object Get Return (Me._tag2) End Get Set(ByVal value As Object) Me._tag2 = value End Set End Property
Entonces, en la propiedad Tag2 almaceno el nombre del tipo al que quiero convertir el contenido Text de mi TextBox.
Queda asi:
--- Código: vb.net --- micontrol.Text="12/12/1999"micontrol.Tag2="System.DateTime"
Entonces al añadir el item al ArrayList, esta sentencia me falla:
--- Código: vb.net --- miarraylist.Add(DirectCast(micontrol.Text,Type.GetType(micontrol.Tag2.ToString()))
No es correcta la conversion ?
Cómo puedo solucionar esto ?
Gracias
krnl64:
Encontré el fallo.
La conversión no era válida porque:
--- Código: vb.net --- DirectCast(micontrol.Text,Type.GetType(micontrol.Tag2.ToString())) devuelve Type
y esto
--- Código: vb.net --- Convert.ChangeType(micontrol.Text, Type.GetType(micontrol.Tag2.ToString())) devuelve Object que es lo que me interesaba.
Ale, si alguien tiene / ha tenido el mismo problema ya sabe la solución.
Saludos
Navegación
Ir a la versión completa