C#编程:可以为 null 的类型

本文介绍了.NET框架中可空类型的概念及用法,包括如何声明、赋值可空类型变量,以及如何判断和获取其值。此外,还讲解了在处理数据库等场景下,可空类型的应用优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


原文来自:https://msdn.microsoft.com/zh-cn/library/1t3y8s4s(v=vs.100).aspx

可以为 null 的类型是 System.Nullable<T> 结构的实例。   可以为 null 的类型可以表示其基础值类型正常范围内的值,再加上一个 null 值。   例如,Nullable<Int32> 读作“可以为 null 的 Int32”,可以将其赋值为 -2147483648 到 2147483647 之间的任意值,也可以将其赋值为 null 值。   可以赋给 Nullable<bool> 的值包括 truefalse 或 null   在处理数据库和其他包含不可赋值的元素的数据类型时,将 null 赋值给数值类型或布尔型的功能特别有用。   例如,数据库中的布尔型字段可以存储值 true 或 false,或者,该字段也可以未定义。

可以为 null 的类型具有以下特性:

  • 可以为 null 的类型表示可被赋值为 null 值的值类型变量。 无法创建基于引用类型的可以为 null 的类型。 (引用类型已支持 null 值。)

  • 语法 T? 是 Nullable<T> 的简写,此处的 T 为值类型。 这两种形式可以互换。

  • 为可以为 null 的类型赋值的方法与为一般值类型赋值的方法相同,如 int? x = 10;  double? d = 4.108 对于可以为 null 的类型,也可向其赋 null: int? x = null. 值

  • 如果基础类型的值为 null,请使用 Nullable<T>.GetValueOrDefault 方法返回该基础类型所赋的值或默认值,例如 int j = x.GetValueOrDefault();

  • 将 HasValue 和 Value 只读属性用于测试是否为空和检索值,如下面的示例所示:if(x.HasValue) j = x.Value;

    • 如果此变量包含值,则 HasValue 属性返回 true;或者如果是 null 则返回 false

    • 如果已赋值,则 Value 属性返回该值。 否则,将引发 System.InvalidOperationException

    • HasValue 的默认值为 false Value 属性没有默认值。

    • 还可以将 == 和 != 操作数用于可为 null 的类型,如下面的示例所示:if (x != null) y = x;

  • 使用 ?? 算符分配默认值,在将当前值为 null 的可以为 null 的类型赋值给不可以为 null 的类型时,将应用该默认值,如 int? x = null; int y = x ?? -1;

  • 不允许使用嵌套的可以为 null 的类型。 将不编译下面一行:Nullable<Nullable<int>> n;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值