如何将一个可空的整型转换为整型?假设我有2种类型的int如下:

int? v1;  
int v2; 

我想把v1的值赋给v2。V2 = v1;将导致错误。如何将v1转换为v2?


当前回答

如果v1为空,就不能这样做,但可以用运算符检查。

v2 = v1 ?? 0;

其他回答

可以使用以下任何一种转换方法:

v2 = Convert.ToInt32(v1);

v2 = (int)v1;

v2 = v1.GetValueOrDefault();

V2 = v1。HasValue吗?v1:0;

v2 = Convert.ToInt32(v1);

v1和v2之间的简单转换是不可能的,因为v1的值域比v2大。它是v1能容纳的所有东西加上零状态。要进行转换,您需要显式地声明int中的哪个值将用于映射null状态。最简单的方法是??操作符

v2 = v1 ?? 0;  // maps null of v1 to 0

这也可以用长形式表示

int v2;
if (v1.HasValue) {
  v2 = v1.Value;
} else {
  v2 = 0;
}

如果v2不为空,它将把v1的值赋给v2,否则它将采用默认值为零。

v2=v1??0

或者下面是另一种写法。

v2 = v1.HasValue?v1:0
 int v2= Int32.Parse(v1.ToString());