如何将一个可空的整型转换为整型?假设我有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 = 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;
}
正常的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是整数。
GetValueOrDefault ()
检索对象的值。如果它为null,则返回int的默认值,即0。
例子:
v2 = v1.GetValueOrDefault ();
int v2= Int32.Parse(v1.ToString());