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

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

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

单问号(?)

单问号运算符可以表示:可为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

标签: 基础
分享给朋友:

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

数组:​从一个整数数组中取出最大的整数。

数组:​从一个整数数组中取出最大的整数。

保存多个值。任意类型都可以声明数组。int[] nums = {5,3,8};//数组可以直接赋值。 int[] nums = new int[3];//也可以先声明数组 不赋值。   &...

字符串的处理

字符串的处理

C#中单个字符用单引号包含就是char类型,('a'),单引号中放且只能放一个字符。单个字符也可以表示为字符串,还可以有长度为0的字符串使用s.Length属性来获得字符串中的字符个数string可以看做是char的只读数组。char c = s[1];。C#中字符串有一个重要的特性...

字符串函数详解

字符串函数详解

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

定义类:一个类可有有多个实例。

定义类:一个类可有有多个实例。

一个类可有有多个实例。类就是把一系列相关的变量(状态)、行为定义为一个整体。字段记录的就是这个对象相关的数据。    class Program     {     ...