Это работает:
int valueAsInt = 0;
if (Int32.TryParse(value, out valueAsInt))
{
record.GetType().GetProperty(property).SetValue(record, valueAsInt, null);
}
else
{
record.GetType().GetProperty(property).SetValue(record, value, null);
}
Это, однако, не.Не знаю, почему.
Int32.TryParse(value, out valueAsInt) ? record.GetType().GetProperty(property).SetValue(record, valueAsInt, null) :record.GetType().GetProperty(property).SetValue(record, value, null);
Я получаю следующие сообщения об ошибках:
Ошибка 1 В качестве оператора могут использоваться только выражения присваивания, вызова, приращения, уменьшения и новых выражений объектов
Ошибка 2 Тип условного выражения не может быть определен, потому что не существует неявного преобразования между 'void' и 'void'
Мне просто было любопытно, почему троичный оператор не срабатывает в этом сценарии.Спасибо!