欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

c#如何声明数据结构类型为null?

程序员文章站 2022-04-08 20:25:40
可以通过如下两种方式声明可为空的类型:System.Nullable variable;T?variable;eg: int值是-2,147,483,648 到 2,147,483,647 ,默认值是 0,不包含null值。(1):int? aa = null;int类型不能为null,通过" ......

可以通过如下两种方式声明可为空的类型:
system.nullable<t> variable;
t?variable;
eg:
int值是-2,147,483,648 到 2,147,483,647 ,默认值是 0,不包含null值。
(1):int? aa = null;int类型不能为null,通过"不能为null的数据类型?"可以处理为null。语法 int? 是 nullable<int> 的简写,其中int是值类型。 这两种形式是可互换的。
(2):system.nullable<int> result = null;int类型不能为null,通过"system.nullable<不能为null的数据类型>"可以处理为null。

使用 nullable<不能为null的数据类型>.getvalueordefault 方法可返回分配的值或基础类型的默认值(如果值为 null 的话)。
eg:int? i = null;int j = i.getvalueordefault();返回变量i的默认值

使用 hasvalue 和 value 只读属性可测试对象是否存在 null 值并检索值。
eg: int? x = null;int j = x.getvalueordefault();if (x.hasvalue) j = x.value;else j = 111;最后输出结果111。

补充:对象名后加?和??的区别:
1,?:只能用于值类型,值类型后加1个?表示此类型为可空类型。
2,??:可用于值类型和引用类型中,值类型或引用类型后加2个?表示:如果对象名取值为null,就选择后面那个值。eg:int?x=null;int y=x??-1;最后输出-1。