在 C# 中,null
是一个特殊的值,表示变量没有引用任何对象。这在处理可能为空的值时非常有用,例如数据库查询结果或用户输入。为了处理空值,C# 提供了 null
关键字和 System.Nullable
类型。
- 使用
null
关键字:
当变量可能为空时,可以使用 null
关键字来表示。例如:
string? myString = null; int? myInt = null;
这里,myString
和 myInt
都是可空的类型,它们可以分别存储 null
值。要检查一个可空值是否为空,可以使用 ??
操作符(空合并操作符):
string result = myString ?? "Default String"; int? result2 = myInt ?? 0;
- 使用
System.Nullable
类型:
System.Nullable
是一个泛型类,用于表示可空的值。它的语法如下:
public struct Nullablewhere T : struct, IConvertible
Nullable
类型有一个名为 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
,而不是引发异常。