Tengo una clase que analiza los datos de un archivo de texto delimitado por comas. Tengo una enumeración para los campos que me ayuda a analizar los datos más fácilmente. La clase que analiza todos los registros contiene variables públicas para cada campo y, por supuesto, sus tipos de variables. Necesito obtener el tipo de estas variables en función de la enumeración dada.C# Obtener el tipo de una variable pública basada en un valor de Enum
public enum DatabaseField : int
{
NumID1 = 1,
NumID2 = 2,
NumID3 = 3,
};
public class DataBaseRecordInfo
{
public long NumID1 { get; set; }
public int NumID2 { get; set; }
public short NumID3 { get; set; }
public static Type GetType(DatabaseField field)
{
Type type;
switch (field)
{
case DatabaseField.NumID1:
type = typeof(long);
break;
case DatabaseField.NumID2:
type = typeof(int);
break;
case DatabaseField.NumID3:
type = typeof(short);
break;
default:
type = typeof(int);
break;
}
return type;
}
};
NumID1, NumID2, NumID3 todos se asignan dentro de mi constructor. Sin embargo, quiero obtener estos tipos sin crear una instancia de DataBaseRecordInfo
. En este momento mi método estático anterior funcionaría, sin embargo, si quisiera cambiar el tipo de variable, tendría que cambiarlo en 2 lugares. ¿Hay alguna forma de evitar tener que cambiar esto en ambos lugares y mantenerlo como un método estático?
No entiendo la pregunta. ¿Puedes ser más claro? "Sin embargo, quiero obtener estos tipos sin crear una instancia de DataBaseRecordInfo", ¿qué significa eso? – hackerhasid
Significa que tengo scenerios en los que quiero los tipos de esas variables, pero no quiero crear una instancia de esta clase para captar los tipos. – jsmith