当前位置:首页 > C#学习

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

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

单问号(?)

单问号运算符可以表示:可为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("输入一个数:");//提示用户输入一个…

foreach语句:依次读取数组中的元素。

foreach语句:依次读取数组中的元素。

foreach和for的区别:for可以不逐个遍历,比如每隔一个遍历一个,或者可以从后向前遍历。只能(只应该)在foreach对集合进行读,而不应该写。foreach语句:依次读取数组中的元素。         …

函数重名:构成重载的条件:参数类型不同或者参数个数不同(不严谨),与返回值无关。

函数重名:构成重载的条件:参数类型不同或者参数个数不同(不严谨),与返回值无关。

构成重载的条件:参数类型不同或者参数个数不同(不严谨),与返回值无关。        static void Main(string[] args)//默认函数   &…

索引器

索引器

C#中提供了按照索引器进行访问的方法定义索引器的方式:string this[int index]{get { return ""; }set { }},string为索引器的类型,[]中是参数列表。进行索引器写操作就是调用set代码块,在set内部使用value得到用户设置的值…