相信很多人都看到??运算符,但是不一定每个人都知道它是用来做什么的,之前我也看到过很多次,但是因为一直没有去用过,所以也没有了解他的作用,今天又看到了,所以查了的MSDN,原来??运算符叫做空接合运算符,作用是,要判断一个对象是否为null,如果为null那么给赋于一个默认的值,做法相当的麻烦.例如:
int? isobject = null;
if(isobject==null)
{
isobject=0;
}
每次都要进行判断!!
当然以上举的只不过是一个简单的例子,有人会想,int型的本来就不会为null,因为其本身有一个默认的值为0.我在这里要说明一下的是,这里举的只是一个例子而己!而且int?代表了变量isobject是可为空的!所以当我赋与一个null时,isobject并不是为0,而是为null.
每次的判断都要用一个if语句,相当的麻烦,现在用了空接合,代码如下:
isobject = isobject??0;
空接合运算符(??)为处理可空类型和引用类型时表示NULL值的可能性提供了一个快捷方式,这个运算符放在两个操作数之间,第一个操作数必须是一个可空类型或引用类,第二个操作数必须与第一个操作数的类型相同,或者可以隐含地转换为第一个操作数的类型.
空接合运算符的计算如下:
如果第一个操作数不为NULL,则整个表达式就等于每一个操作数,但如果第一个操作数为NULL,则整个表达式就是等于第二个操作数的值.例如:
int? a= null;
int b;
b= a??10; //b has the value 10
a=3;
b= a??10; //b has the value 3
如果第二个操作数不能隐含地转换为第一个操作数的类型,就生成一个编译错误.

转载于:https://www.cnblogs.com/ithome8/p/4109732.html

c# 空接合(??)运算符的运用相关推荐

  1. C# 可空类型和空接合运算符(??)

    随手翻阅C#高级编程时,看到可空类型和运算符这一节,又发现了自己的一个C#知识盲点.可空类型: 可空类型只能用于值类型,不能用于引用类型,引用类型本身支持null值. 如果直接把null赋值给int类 ...

  2. C# 空合并运算符 ??

    C#语言中,??运算符称为空合并运算符: a??b形式的空合并表达式要求a为可以为null的类型或引用类型.如果a为非null,则a??b的结果为a:否则,结果为b.仅当a为null时,该操作才计算b ...

  3. PHP三元运算符vs空合并运算符

    本文翻译自:PHP ternary operator vs null coalescing operator Can someone explain the differences between t ...

  4. php 三元运算符 为空,PHP三元运算符vs空合并运算符

    小编典典 当您的第一个参数为null时,它们基本相同,不同之处在于,E_NOTICE当您有未定义的变量时,null合并不会输出.在PHP7.0迁移的文档有这样一段话: 对于需要将三元数与isset() ...

  5. C#空接合操作符——??

    操作符: ?? 用法:C = A ?? B; 解释:if(A != null){ C=A;} else{C=B}     类似三元运算符 :? 例子: Int32? num1=null; Int32? ...

  6. [Unity脚本运行时更新]C#6新特性

    洪流学堂,让你快人几步!本文首发于洪流学堂微信公众号. 本文是该系列<Unity脚本运行时更新带来了什么?>的第4篇. 洪流学堂公众号回复runtime,获取本系列所有文章. Unity2 ...

  7. C#图解教程(第4版)

    <C#图解教程(第4版)> 基本信息 原书名:Illustrated C# 2012,Fourth Edition 作者: (美)Daniel M.Solis    译者: 姚琪琳 苏林 ...

  8. 汉澳sinox2019操作系统AI企业版发布

    国领先的操作系统和计算机语言重装上阵! 打造办公系统,图形设计,服务器,新编程语言,人工智能AI深度学习,立即可用 汉澳sinox2019操作系统AI企业版发布 始于2003年的汉澳-器浦发展计划旨在 ...

  9. C#语法 “控制台“输入三个‘整数‘“,使用<三目运算符>算出最大值

    using System; namespace stars { class Program { static void Main(string[] args) { Console.WriteLine( ...

最新文章

  1. arcgis 中label feature太长换行_MapGIS转换为ArcGIS小结
  2. C#(asp.net)对字符串的操作公共类(StringUtil.cs)
  3. android studio 7200u,超惊艳的设计!微软正式将Surface Studio和Surface Laptop带进中国:设计师们都看哭了...
  4. python在开头声明全局变量_全局变量声明Python
  5. C语言拼接字符串 -- 使用strcat()函数
  6. 限制RICHTEXTBOX的输入的范围
  7. Java讲课笔记06:选择结构与条件循环
  8. Unity ScriptObject
  9. requests cookie
  10. ResourceUtils读取properties文件
  11. 大一新生开学考计算机知识点,2018年大一新生入学考试科目及考试资料和内容解读...
  12. mysql zhu 主从复制_MySQL主从复制--原理
  13. Mac下Chrome添加.crx浏览器插件
  14. 光线微弯传感器matlab仿真,光纤压力与位移传感特性
  15. 初中学校计算机机房管理制度,学校机房管理制度
  16. 无法更改硬件兼容性时解决“虚拟机使用的是此版本 VMware Workstation 不支持的硬件版本”的方法
  17. rxjava背压_RxJava(九):背压
  18. 微型计算机机安装硬盘教程,装机DIY之硬盘安装方法 不同硬盘安装方法图解教程...
  19. android教你打造独一无二的图片加载框架
  20. Effective C++ 总结

热门文章

  1. 随笔:开学大四!!!稍微做点准备工作
  2. eclipse护眼颜色和字体大小设置
  3. js中奇怪的问题 同步ajax,modal遮罩层
  4. Kylin安装Version1.6.0
  5. 企业微信怎么输入服务器id,系统账号绑定企业微信成员id
  6. windows7原版iso镜像_一定收藏,常用操作系统原版下载地址整理,Win7 Win10 Deepin...
  7. 史上最经典CAP讲解
  8. redis分片_Redis的持久化操作
  9. Maven依赖的Scope去除部署不需要的jar 包(打包)
  10. 一朵更好的云 MADE IN 青云QingCloud