博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# ?(问号)的三个用处
阅读量:6567 次
发布时间:2019-06-24

本文共 620 字,大约阅读时间需要 2 分钟。

public DateTime? StatusDateTime = null; 

脑子便也出现个问号,这是什么意思呢?网上搜下,总结如下: 
1. 可空类型修饰符(?): 
引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空。 
例如:string str=null; 是正确的,int i=null; 编译器就会报错。 
为了使值类型也可为空,就可以使用可空类型,即用可空类型修饰符"?"来表示,表现形式为"T?" 
例如:int? 表示可空的整形,DateTime? 表示可为空的时间。 
T? 其实是System.Nullable<T>(泛型结构)的缩写形式,也就意味着当你用到T?时编译器编译 时会把T?编译成System.Nullable<T>的形式。 
例如:int?,编译后便是System.Nullable<int>的形式。 
2. 三元(运算符)表达式(?:): 
例如:x?y:z 表示如果表达式x为true,则返回y;如果x为false,则返回z,是省略if{}else{}的简单形式。 
3. 空合并运算符(??): 
用于定义可空类型和引用类型的默认值。如果此运算符的左操作数不为null,则此运算符将返回左操作数,否则返回右操作数。 
例如:a??b 当a为null时则返回b,a不为null时则返回a本身。 
空合并运算符为右结合运算符,即操作时从右向左进行组合的。如,“a??b??c”的形式按“a??(b??c)”计算

转载地址:http://pkpjo.baihongyu.com/

你可能感兴趣的文章
MySQL结构自动同步工具-schemasync
查看>>
关于在线代码运行网站的一个想法
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
django forms模块使用
查看>>
FreeBSD IPFW 防火墙的安装和设置
查看>>
Linux分区和文件系统 ⑥
查看>>
ClipDrawable--水漫起来的效果
查看>>
osd内的pg数量
查看>>
shell脚本与mysql交互方法汇总
查看>>
Cron 表达式详解和案例
查看>>
Android - 软件自动更新的实现
查看>>
oracle数据库远程不落地导入本地数据库
查看>>
dns相关内容
查看>>
JavaScript骚操作
查看>>
MySQL的主从复制与读写分离原理
查看>>
luaCPU性能测试
查看>>
mysql优化
查看>>
【批处理】for循环中产生不同的随机数
查看>>
Gradle -help
查看>>