注册 登录

清河洛

C#中的可空类型和枚举类型

qingheluo2021-08-31清河洛805
C#中的可空类型C#提供了一个特殊的数据类型:nullable类型(可空类型)可空类型可以表示其基础值类型正常范围内的值,再加上一个null值在处理数据库和其他包含可能未赋值的元素的数据类型时,将null赋值给数值类型或布尔型的功能特别有用声明一个nullable类型(可空类型):? [= value]; data_type表示数据类型,后面紧跟着一个问号 variable_name表示变量名 nullable类型的默认值为null 如 int? a 表示a的值为-2147483648到2147483647,也可以被赋值为null值 且此时变量a的默认值由0变为了null Null合...

C#中的可空类型

C#提供了一个特殊的数据类型:nullable类型(可空类型)

可空类型可以表示其基础值类型正常范围内的值,再加上一个null值

在处理数据库和其他包含可能未赋值的元素的数据类型时,将null赋值给数值类型或布尔型的功能特别有用

声明一个nullable类型(可空类型):

? [= value];

data_type表示数据类型,后面紧跟着一个问号
variable_name表示变量名
nullable类型的默认值为null

如 int? a
表示a的值为-2147483648到2147483647,也可以被赋值为null值
且此时变量a的默认值由0变为了null

Null合并运算符(??)

合并运算符把操作数类型隐式转换为另一个可空(或不可空)的值类型的操作数的类型。

如果第一个操作数的值为 null,则运算符返回第二个操作数的值,否则返回第一个操作数的值

double? num1 = null;
double? num2 = 3.1415;
double num3,num4;
num3 = num1 ?? 0.00;
num4 = num2 ?? 0.00;
//num3的值为0.00,num4的值为3.1415

Null合并运算符(??)作用是判断??左边的对象是否为null,如果不为null则使用??左边的对象,如果为 null则使用??右边的对象
可以理解为三元运算符的简化形式:

num3 = num1 ?? 0.00;
num3 = (num1 == null) ? 0.00 : num1;

C#中的枚举类型

枚举类型是具有一组命名常量的独特的值类型,使用enum关键字声明

 enum enum_name:
{
    enumeration list
}
Access Specifier:表示访问修饰符
enum_name       :表示枚举的类型名称
Data Type       :必须为一个整数类型,表示枚举成员的赋值范围

枚举类型一般用于列出唯一的元素,每个枚举的成员对应一个整形数据,且后面的成员对应的整形数据必定大于前面的成员对应的整形数据

enum Myenum:uint
{
    one=5,two,three=9,four,five,six,seven
}

上面代码定义了一个Myenum的枚举类型,该成员中第一个成员对应的整形数据手工指定为5(不指定默认从0开始),第二个成员未指定则会在前一个成员的基础上加1,也就是6,后面以此类推

枚举类型的使用

可以通过赋值给变量
enum_name  = enum_name.enum_member
Myenum fivty = Myenum.five;

也可以直接使用enum_name.enum_member访问成员

访问到枚举的成员后返回的是一个枚举成员类型,可以直接打印成字符串,也可以通过(int)操作符转变为对应的整形数据

Console.WriteLine(Myenum.four);      //输出:four
Console.WriteLine((int)Myenum.four); //输出:10



网址导航