温馨提示×

c# nullable 怎样处理空值

c#
小樊
82
2024-11-26 12:12:20
栏目: 编程语言

在 C# 中,null 是一个特殊的值,表示变量没有引用任何对象。这在处理可能为空的值时非常有用,例如数据库查询结果或用户输入。为了处理空值,C# 提供了 null 关键字和 System.Nullable<T> 类型。

  1. 使用 null 关键字:

当变量可能为空时,可以使用 null 关键字来表示。例如:

string? myString = null;
int? myInt = null;

这里,myStringmyInt 都是可空的类型,它们可以分别存储 null 值。要检查一个可空值是否为空,可以使用 ?? 操作符(空合并操作符):

string result = myString ?? "Default String";
int? result2 = myInt ?? 0;
  1. 使用 System.Nullable<T> 类型:

System.Nullable<T> 是一个泛型类,用于表示可空的值。它的语法如下:

public struct Nullable<T> where T : struct, IConvertible

Nullable<T> 类型有一个名为 HasValue 的布尔属性,用于检查值是否为空。还有一个名为 Value 的属性,用于获取或设置非空值。例如:

int? myInt = 5;
if (myInt.HasValue)
{
    Console.WriteLine(myInt.Value); // 输出 5
}
else
{
    Console.WriteLine("myInt is null");
}

要检查一个可空值是否为空,可以使用 ?? 操作符(空合并操作符):

int result = myInt ?? 0;
  1. 使用 null-conditional 运算符(C# 6 及更高版本):

从 C# 6 开始,可以使用 ?. 运算符来简化可空类型的空值检查。例如:

string result = myString?.Substring(0, 1);

如果 myString 为空,result 将被赋值为 null,而不是引发异常。

0