天天看点

c#可空类型(Nullable)

c#提供了一个特殊的数据类型,nullable类型(可空类型)可空类型可以表示其基础值类型正常范围内的值,再加上一个null值

例如,Nullable<int32>,读作可空的int32,可以被赋值为-2147483648到2147483647之间的任意值,也可以被赋值为null值,类似的,Nullable<bool>变量可以被赋值为ture或false或null

在处理数据库和其他包含可能未赋值的元素的数据类型时,将null赋值给数值类型或布尔型 的功能特别有用,例如,数据库中的布尔型字段可以存储值true或false,或者,该字段也可以未定义

声明一个nullable类型的语法如下

<data_type>?<variable_name>=null;

下面的实例演示了可空数据类型的用法

using System;

namespace CalculatorApplication

{

class NullableAtshow

{

static void Main(string[] args)

{

int? num1=null;

int? num2=45;

double? num3=new double?();

doule? num4=3.14157

bool? boolval=new bool?();

//显示值

Console.WriteLine("显示可空类型值{0},{1},{2},{3}",num1,num2,num3,num4);

Console.WriteLine("一个可空的布尔值{0}",boolval);

Console.ReadLine();

}

}

}

显示结果

显示可空类型的值45,3.14157

一个可空的布尔值

Null合并运算符(??)

Null合并运算符用于定义可空类型和引用类型的默认值

Null合并运算符为类型转换定义了一个预设值,以防可空类型的值为Null,Null合并运算符把操作数类型隐式转换为另一个可空(或不可空)的值类型的操作数的类型

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

using System;

namespace CalculatorApplication

{

class NullablesAtshow

{

static void Main(string[] args)

{

double? num1=null;

double? num2=3.14157;

double num3;

num3=num1??5.34;

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

num3=num2??5.34;

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

Console.ReadLine();

}

}

}

显示结果

num3值5.34

num3值3.14157