加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

C# nullable 可空类别

发布时间:2023-06-02 10:54:28 所属栏目:语言 来源:
导读:在 C# 1.x 的版本中,一个值类型的变量是不可以被赋值为 null(空值)的,否则会产生异常。而在 C# 2.0 中,新增了一个 nullable 类型,可以使用 nullable 类型定义包含 null 值的数据,例如,您可以在 nullable <In

在 C# 1.x 的版本中,一个值类型的变量是不可以被赋值为 null(空值)的,否则会产生异常。而在 C# 2.0 中,新增了一个 nullable 类型,可以使用 nullable 类型定义包含 null 值的数据,例如,您可以在 nullable <Int32>(可为空的 int32 类型)类型的变量中存储 -2147483648 到 2147483647 之间的任何值或者 null。同样,您可以在 nullable <bool>(可为空的 bool 类型)类型的变量中存储 true、false 或 null。声明可空类型的语法如下:

data_type? variable_name = null;

其中,data_type 为要声明的数据类型,后面紧跟一个问号;variable_name 则为变量的名称。

【示例】下面通过示例来演示可空类型的用法:

using System;

namespace c.biancheng.net

{

class Demo

{

static void Main(string[] args){

int? num1;

int? num2 = 123;

num1 = null;

 

double? num3 = new double?();

double? num4 = 3.1415926;

bool? boolval = null;

// 输出这些值

Console.WriteLine("num1 = {0} \r\n num2 = {1} \r\n num3 = {2} \r\n num4 = {3} \r\n boolval = {4}", num1, num2, num3, num4, boolval);

Console.ReadLine();

}

}

}

运行结果如下:

num1 =

num2 = 123

num3 =

num4 = 3.1415926

boolval =

Null 合并运算符(??)

在 C# 中 Null 合并运算符用于定义可空类型和引用类型的默认值。如果此运算符的左操作数不为 null,那么运算符将返回左操作数,否则返回右操作数。例如表达式a??b中,如果 a 不为空,那么表达式的值则为 a,反之则为 b。

需要注意的是,Null 合并运算符左右两边操作数的类型必须相同,或者右操作数的类型可以隐式的转换为左操作数的类型,否则将编译错误。

【示例】下面通过示例来演示 Null 合并运算符的使用:

using System;

namespace c.biancheng.net

{

class Demo

{

static void Main(string[] args){

int? num1 = null;

int? num2 = 123;

int num3;

 

num3 = num1 ?? 321;

Console.WriteLine("num3 = {0}", num3);

num3 = num2 ?? 321;

Console.WriteLine("num3 = {0}", num3);

Console.ReadLine();

}

}

}

运行结果如下:

num3 = 321

num3 = 123

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!