Просто небольшое расширение до решения Найтона Linq Expression . Используйте множественный общий параметр, чтобы свойство не ограничивалось строкой.
void GetString(string input, TClass outObj, Expression> outExpr)
{
if (!string.IsNullOrEmpty(input))
{
var expr = (MemberExpression) outExpr.Body;
var prop = (PropertyInfo) expr.Member;
if (!prop.GetValue(outObj).Equals(input))
{
prop.SetValue(outObj, input, null);
}
}
}
Отредактированный для комментирования относительно комментария:
Вы прокомментировали
В отладчике, значение = "Ошибка 2015" и тип = "Вариант/Ошибка"
, Эта ошибка означает, что Ваш Value
во время выполнения #VALUE!
. Можно обработать это событие правильно первым использованием следующего условного выражения:
If Not IsError(Cells(i, 83).Value) Then
...