Возможный дубликат:
Введите результат с помощью тернарного оператора в C #
Я столкнулся с этим сценарием, и, похоже, нет естественного способа вернуть значение int, допускающее значение NULL. Приведенный ниже код дает ошибку компиляции, потому что тернарный оператор не любит null.
public int? userId
{
get
{
int rv;
return int.TryParse(userIdString, out rv) ? rv : null;
}
}
Так что вам (или только мне) действительно нужно пройти весь путь и изложить все:
public int? userId
{
get
{
int id;
if(int.TryParse(userIdString, out id)){
return id;
}
return null;
}
}
РЕДАКТИРОВАТЬ: Есть ли более естественный способ создания экземпляра, допускающего значение NULL, чтобы заставить работать тернарный оператор?