20171026:C#可空类型遇到的一个小坑

2017-10-30  本文已影响0人  DP_Feynman

基本概念

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

小结

  1. 三元运算符结果之间的类型必须可以隐式转换
  2. 可空类型的三元运算符操作如果需要赋值为null的话,需要进行强制(显式)转换
上一篇 下一篇

猜你喜欢

热点阅读