У меня есть следующий метод stati c:
public static cols Parse(string[] inCols, int[] dat)
{
cols c = new cols();
PropertyInfo[] properties = typeof(cols).GetProperties();
for (int i = 0; i < inCols.Length; i++)
{
PropertyInfo prop = properties.Single(a => a.Name == inCols[i]);
var t = Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType;
var safeValue = Convert.ChangeType(dat[i], t);
prop.SetValue(c, safeValue);
}
return c;
}
Здесь свойства класса "cols" являются обнуляемыми типами Enum. У метода есть два входящих параметра (inCols и dat). InCols содержит имена свойств в виде строки, а данные - их значения как int. Задача метода состоит в том, чтобы на основе имени метода он назначал правильные значения типу nullable enum. Я получаю следующее сообщение об ошибке: System.InvalidCastException: 'Invalid cast from 'System.Int32' to '<my enum type>'.'
Это странно, потому что значение должно быть 0, что хорошо для enum, потому что это его первое значение.
Любой из вас есть идеи?
Спасибо! Габор