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

基本概念

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的话,需要进行强制(显式)转换
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,765评论 18 399
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 9,537评论 1 51
  • 一、基本数据类型 注释 单行注释:// 区域注释:/* */ 文档注释:/** */ 数值 对于byte类型而言...
    龙猫小爷阅读 4,288评论 0 16
  • 感恩~装橱柜的师傅不厌其烦地按照老妈的要求修正,又在室外通风口加了弯管和铁丝网,天气寒冷,师傅的脸也冻的红通通的,...
    毛毛细雨mmxy阅读 157评论 0 0
  • 上回说到,第六天的烧烤项目结束后,我们的小团队发生了一件大事,是什么呢? 老妈生病了。 她下午一...
    莜茜桦阅读 371评论 5 6