基本信息
文件名称:C#中可空类型的使用.docx
文件大小:16.03 KB
总页数:4 页
更新时间:2025-05-20
总字数:约1.56千字
文档摘要

C#中可空类型的使用

目录一、什么是可空类型二、为可空类型赋值三、使用空接合运算符四、使用可空用户自定义类型

一、什么是可空类型

可空类型允许我们创建一个值类型变量并且可以标记为有效或无效,这样我们就可以有效地将值类型设置为null。可空类型总是基于另外一个叫做基础类型的已经被声明的类型。

可以从任何值类型创建可空类型。不能从引用类型或其他可空类型创建可空类型。不能在代码中显示声明可空类型,只能声明可空类型的变量。编译器会使用泛型隐式地创建可空类型。

举例:声明一个可空int类型的变量

产生的可空类型如下:

必须确保使用可空类型时,该可空变量不是null

可空类型和相应的非可空类型可以轻松转换:

二、为可空类型赋值

可以将以下三种类型的值赋给可空变量:

基础类型的值同一可空类型的值null

三、使用空接合运算符

空接合运算符允许我们在可空类型变量为null时返回一个值给表达式。(可空类型也可以使用标准运算符和比较运算符)空接合运算符由两个连续的问号组成。第一个操作数是可空类型的变量。第二个操作数是基础类型的不可空值。在运行时,如果第一个操作数运算后为null,将返回第二个操作数作为结果。

staticvoidMain(string[]args)

intmyInt=null;

Console.WriteLine(myInt:{0},myInt-1);

myInt=6;

Console.WriteLine(myInt:{0},myInt-1);

}

四、使用可空用户自定义类型

1.创建用户自定义值类型

structMyStruct//声明结构

publicintX;

publicintY;

publicMyStruct(intx,inty)

X=x;

Y=y;

}

2.将值类型转换为可空类型

staticvoidMain(string[]args)

MyStructms=newMyStruct(6,7);//方式1,使用?

MyStructmyStruct=newMyStruct(6,7);

NullableMyStructms3=newNullableMyStruct(myStruct);//使用Nullable创建的可空类型

}

3.使用自定义值类型转换后的可空类型,可空类型其数据只能通过Value来访问。

structMyStruct//声明结构

publicintX;

publicintY;

publicMyStruct(intx,inty)

X=x;

Y=y;

internalclassProgram

staticvoidMain(string[]args)

MyStructms1=newMyStruct(6,7);//值类型

MyStructms2=newMyStruct(6,7);//使用?创建的可空类型

MyStructmyStruct=newMyStruct(6,7);

NullableMyStructms3=newNullableMyStruct(myStruct);//使用Nullable创建的可空类型