在 C# 中,null
是一个特殊的值,表示变量没有引用任何对象。这在处理可能为空的值时非常有用,例如数据库查询结果或用户输入。为了处理空值,C# 提供了 null
关键字和 System.Nullable<T>
类型。
null
关键字:当变量可能为空时,可以使用 null
关键字来表示。例如:
string? myString = null;
int? myInt = null;
这里,myString
和 myInt
都是可空的类型,它们可以分别存储 null
值。要检查一个可空值是否为空,可以使用 ??
操作符(空合并操作符):
string result = myString ?? "Default String";
int? result2 = myInt ?? 0;
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;
null-conditional
运算符(C# 6 及更高版本):从 C# 6 开始,可以使用 ?.
运算符来简化可空类型的空值检查。例如:
string result = myString?.Substring(0, 1);
如果 myString
为空,result
将被赋值为 null
,而不是引发异常。