详解c# 可空类型(Nullable)
C#单问号?与双问号??
?:单问号用于对int,double,bool等无法直接赋值为null的数据类型进行null的赋值,意思是这个数据类型是NullAble类型的。
int?i=3 等同于 Nullablei=newNullable (3); inti;//默认值0 int?ii;//默认值null
??:双问号可用于判断一个变量在为null时返回一个指定的值。
接下来我们详细说明。
C#可空类型(Nullable)
C#提供了一个特殊的数据类型,nullable类型(可空类型),可空类型可以表示其基础值类型正常范围内的值,再加上一个null值。
例如,Nullable
在处理数据库和其他包含可能未赋值的元素的数据类型时,将null赋值给数值类型或布尔型的功能特别有用。例如,数据库中的布尔型字段可以存储值true或false,或者,该字段也可以未定义。
声明一个nullable类型(可空类型)的语法如下:
? =null;
下面的实例演示了可空数据类型的用法:
usingSystem; namespaceCalculatorApplication { classNullablesAtShow { staticvoidMain(string[]args) { int?num1=null; int?num2=45; double?num3=newdouble?(); double?num4=3.14157; bool?boolval=newbool?(); //显示值 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,则运算符返回第二个操作数的值,否则返回第一个操作数的值。下面的实例演示了这点:
usingSystem; namespaceCalculatorApplication { classNullablesAtShow { staticvoidMain(string[]args) { double?num1=null; double?num2=3.14157; doublenum3; num3=num1??5.34;//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
以上就是详解c#可空类型(Nullable)的详细内容,更多关于c#可空类型(Nullable)的资料请关注毛票票其它相关文章!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。