当前位置: 首页 > 科技观察

C#可控类型你知道多少?

时间:2023-03-17 13:37:19 科技观察

本文转载自微信公众号《后端Q》,作者柯南。转载请联系后台Q公众号。C#单问号?和双问号???:单问号用于给int、double、bool等不能直接赋值给null的数据类型赋值null,表示该数据类型为Nullable类型。诠释?我=3;相当于:Nullablei=newNullable(3);inti;//默认值0int?ii;//默认值null??:双问号可以用来判断一个变量是否为null时返回指定值。接下来我们详细解释。C#可空类型(Nullable)C#提供了一种特殊的数据类型,可空类型(nullabletype),它可以表示在其底层值类型的正常范围内的值,再加上一个空值。例如,Nullable,发音为“nullableInt32”,可以赋值在-2,147,483,648和2,147,483,647之间的任何值,也可以赋值为空值。同样,可以为Nullable变量赋值true或false或null。在处理包含可能未分配元素的数据库和其他数据类型时,将null分配给数字或布尔类型的能力特别有用。例如,数据库中的布尔字段可以存储值true或false,或者该字段可以是未定义的。声明可空类型(nullabletype)的语法如下:?=null;以下示例演示了可空数据类型的用法:num4=3.14157;bool?boolval=newbool?();//显示值Console.WriteLine("显示可空类型Values:{0},{1},{2},{3}",num1,num2,num3,数字4);Console.WriteLine("一个可为空的布尔值:{0}",boolval);安慰。ReadLine();}}}当上面的代码被编译和执行时,它产生以下结果:显示一个可为空类型的值:,45,,3.14157一个可为空的布尔值:NullCoalescingoperator(??)TheNullcoalescingoperator用于定义可空类型和引用类型的默认值。null合并运算符定义类型转换的默认值,以防可空类型的值为Null。Null合并运算符将操作数类型隐式转换为另一个可空(或不可空)值类型的操作数类型。如果第一个操作数的值为空,则运算符返回第二个操作数的值,否则返回第一个操作数的值。下面的例子演示了这一点:instanceusingSystem;namespaceCalculatorApplication{classNullablesAtShow{staticvoidMain(string[]args){double?num1=null;double?num2=3.14157;doublenum3;num3=num1??5.34;//如果num1为空值返回5.34Console.WriteLine("num3的值:{0}",num3);num3=num2??5.34;Console.WriteLine("num3的值:{0}",num3);Console.ReadLine();}}上面的代码被编译和执行后,产生如下结果:Valueofnum3:5.34Valueofnum3:3.14157