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

[0] Índice de Mensajes

Ir a la versión completa