A ver si esto se puede hacer

09/12/2006 - 18:32 por Francisco Matamoros | Informe spam
Hola, lo voy a poner con un ejemplo porque no me voy a explicar bien de otro
modo.
Tengo esto:

string pepe = "int",
o string pepe = "decimal"
y quiero crear una variable del tipo contenido en pepe
en tiempo de ejecución
sería a lo bestia tal que así:
pepe variable nueva = new pepe();
pero, claro de este modo es una burrada.
¿Se puede hacer esto?
Gracias
Es para que se abra un editor de informes de XtraReports con la clase
adecuada en cada momento dependiendo del valor del campo de una fila que hay
en el grid.
 

Leer las respuestas

#1 Octavio Hernandez
09/12/2006 - 19:11 | Informe spam
Francisco,

Se puede, mediante reflexión. Ahí va un ejemplo (using System.Reflection;):
public object Crear(string nombreTipo)

{

Type tipo = Type.GetType(nombreTipo);

object obj = Activator.CreateInstance(tipo);

}

private void button1_Click(object sender, EventArgs e)

{

object obj = Crear("System.Int32"); // **** creamos un entero

MessageBox.Show(obj.GetType().Name.ToString());

}

Lo único es que hay que pasar el nombre de tipo del CLR, no el del lenguaje
específico (C#).

Slds - Octavio



"Francisco Matamoros" escribió en el mensaje
news:%23$
Hola, lo voy a poner con un ejemplo porque no me voy a explicar bien de
otro modo.
Tengo esto:

string pepe = "int",
o string pepe = "decimal"
y quiero crear una variable del tipo contenido en pepe
en tiempo de ejecución
sería a lo bestia tal que así:
pepe variable nueva = new pepe();
pero, claro de este modo es una burrada.
¿Se puede hacer esto?
Gracias
Es para que se abra un editor de informes de XtraReports con la clase
adecuada en cada momento dependiendo del valor del campo de una fila que
hay en el grid.



Preguntas similares