Как можно преобразовать nullable тип в обычный? Например если есть переменная типа int?, то как можно преобразовать её к обычному int?
Здравствуйте!
int?
- это аналог Nullable<int>
. Если вы посмотрите документацию, то станет ясно, что данная структура имеет два открытых свойства: HasValue
и Value
, так что для преобразования значения можно сделать следующее:
int? a= ...; // записать какое-то значение или же null
int b;
if (a.HasValue) // свойство HasValue вернёт true, если в переменной a записано число, а не null
{
b = a.Value;
}
else // в а записано null
{
b = ...; // записать какое-то значение, например 0
}
Так же это можно сделать с помощью тернарного оператора:
int? a = ...; // записать какое-то значение или же null
int b = a.HasValue ? a.Value : 0;
Либо же в ещё более сокращённой форме:
int? a = ...; // записать какое-то значение или же null
int b = a ?? 0; // b = (a == null) ? 0 : a;