Простое преобразование между v1
и v2
невозможно, поскольку v1
имеет большую область значений, чем v2
. Это все, что может удержать v1
плюс состояние null
. Для преобразования вам нужно явно указать, какое значение в int
будет использоваться для отображения состояния null
. Самый простой способ сделать это - оператор ??
v2 = v1 ?? 0; // maps null of v1 to 0
Это также можно сделать в длинном виде
int v2;
if (v1.HasValue) {
v2 = v1.Value;
} else {
v2 = 0;
}