在三元运算符中将nullable int赋值给int

时间:2015-07-24 08:42:20

标签: c# nullable

我有一个class

class Test
{
   int? a;
   int b;
}

现在我正在创建test class

的对象
Test objTest = new Test();
objTest.b = objTest.a;

这里抛出错误cannot implicitly convert int? to int

所以我想出了解决方案

objTest.b  = ObjTest.a ?? 0;

在这里工作正常但是!!!

objTest.b = objTest.a == null ? 0 : objTest.a

失败..

为什么基本上都做同样的checking null value and assign value accordingly

1 个答案:

答案 0 :(得分:2)

在第二个示例中,您仍然需要将a强制转换为int。

objTest.b = objTest.a == null ? 0 : (int)objTest.a

将编译。但这只是你提出的第一种方式。