基本概念
C#中可空类型是值可以为null
的类型,也就是说可以直接赋值为null
,比如int? value = null
。
出现的问题
按一般编程string text = true ? 'hello,world':null
来同样给可空类型进行三元运算符计算
int? value = true ? 1 : null;
编辑器会提示:无法确定表达式的类型,因为<null>和int之间没有存在隐式转换
解决方法
既然不能隐式转换,那就采取显式转换,代码如下:int? value = ture ? 1 : (int?)null
小结
- 三元运算符结果之间的类型必须可以
隐式转换
- 可空类型的三元运算符操作如果需要赋值为
null
的话,需要进行强制(显式)转换