如何将一个可空的整型转换为整型?假设我有2种类型的int如下:
int? v1;
int v2;
我想把v1的值赋给v2。V2 = v1;将导致错误。如何将v1转换为v2?
如何将一个可空的整型转换为整型?假设我有2种类型的int如下:
int? v1;
int v2;
我想把v1的值赋给v2。V2 = v1;将导致错误。如何将v1转换为v2?
当前回答
可以使用以下任何一种转换方法:
v2 = Convert.ToInt32(v1);
v2 = (int)v1;
v2 = v1.GetValueOrDefault();
V2 = v1。HasValue吗?v1:0;
其他回答
就我而言,最好的解决方案是使用GetValueOrDefault()方法。
v2 = v1.GetValueOrDefault();
如果v2不为空,它将把v1的值赋给v2,否则它将采用默认值为零。
v2=v1??0
或者下面是另一种写法。
v2 = v1.HasValue?v1:0
像这样,
if(v1.HasValue)
v2=v1.Value
正常的TypeConversion将抛出异常
Eg:
int y = 5;
int? x = null;
y = x.value; //It will throw "Nullable object must have a value"
Console.WriteLine(y);
使用Convert.ToInt32()方法
int y = 5;
int? x = null;
y = x.Convert.ToInt32(x);
Console.WriteLine(y);
这将返回0作为输出,因为y是整数。
在c# 7.1及以后版本中,类型可以通过使用默认字面值而不是默认操作符来推断,因此它可以写成如下:
v2 = v1 ?? default;