У меня есть класс, который анализирует данные из текстового файла с разделителями-запятыми. У меня есть перечисление для полей, чтобы помочь мне разобрать данные проще. Класс, который анализирует все записи, содержит открытые переменные для каждого поля и, конечно, их типы переменных. Мне нужно получить тип этих переменных на основе указанного перечисления.
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 все назначаются в моем конструкторе. Однако я хочу получить эти типы, даже не создавая экземпляр DataBaseRecordInfo
. Прямо сейчас мой статический метод, описанный выше, будет работать, однако, если я захочу изменить тип переменной, мне придется изменить его в 2 местах. Есть ли способ обойти необходимость изменить это в обоих местах и сохранить его как статический метод?