当前位置:首页 > C#学习 > 正文内容

单问号(?)和双问号(??)

小道7年前 (2018-08-31)C#学习4875

单问号(?)

单问号运算符可以表示:可为Null类型,C#2.0里面实现了Nullable数据类型

int i = null;//这句是错的。int不能定义为null。默认值为0

定义一个可为null类型的整型:

int? i = null;//这样是可以的。下面就是原格式。
Nullable<int> i = null;//上面是另一种书写格式。


双问号(??)

 ?? 运算符称为 null 合并运算符,用于定义可以为 null 值的类型和引用类型的默认值。如果此运算符的左操作数不为 null,则此运算符将返回左操作数;否则返回右操作数。

可以为 null 的类型可以包含值,或者可以是未定义的。?? 运算符定义当可以为 null 的类型分配给非可以为 null 的类型时返回的默认值。如果在尝试将可以为 null 值的类型分配给不可以为 null 值的类型时没有使用 ?? 运算符,则会生成编译时错误。如果使用强制转换,且当前还未定义可以为 null 值的类型,则会引发InvalidOperationException 异常。

//A.定义i为null,输出结果为0
int? i = null;//定义可为null的变量
Console.WriteLine(i ?? 0);//判断 i是否为null,如果为null则输出 ?? 后面的0.

//B.定义i为1,输出结果为1
int i = 1;//定义可为null的变量
Console.WriteLine(i ?? 0);//判断 i是否为null,如果为null则输出 ?? 后面的0.


扫描二维码推送至手机访问。

版权声明:本文由小道发布,如需转载请注明出处。

本文链接:https://www.daobk.com/post/95.html

标签: 基础
分享给朋友:

“单问号(?)和双问号(??)” 的相关文章

Switch语句:输入一个数字,用Switch判断,并输出。

Switch语句:输入一个数字,用Switch判断,并输出。

Switch语句:输入一个数字,用Switch判断,并输出。            Console.WriteLine("输入一个数:");//提示用户输入一个...

​while语句:不断要求用户输入一个数字(假定用户输入的都是正整数)

​while语句:不断要求用户输入一个数字(假定用户输入的都是正整数)

while语句:不断要求用户输入一个数字(假定用户输入的都是正整数),当用户输入end的时候显示刚才输入的数字中的最大值。设一个变量int max,初始值为0,用户每输入一次就把用户输入的和max比较一下,如果输入的比max大,则让max等于用户输入。    ...

枚举enum

枚举enum

确定数量、确定值的几个取值:东西南北、男女、上中下。和用字符串比起来,用枚举的好处就是限定了变量的取值范围,程序处理起来更方便。namespace 枚举//命名空间 {     enum xb { 男, 女...

字符串函数详解

字符串函数详解

字符串替换:string Replace(string oldValue, string newValue)将字符串中的出现oldValue的地方替换为newValue。例子:名字替换。取子字符串:string Substring(int startIndex),取从位置startIndex开始一直...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。