可为null的引用类型
在 C# 8.0 中,Nullable reference types 是一项重要的语言特性,它允许开发人员显式地标识一个引用类型可以为 null。这有助于防止代码中空引用错误的发生,同时也提高了代码的可读性和维护性。
# 使用 Nullable reference types
在 C# 8.0 中,可以使用 ?
标识符将引用类型声明为可空的。例如:
string? name = null;
在此示例中,变量 name
被声明为可空字符串,并且可以赋值为 null。
# 启用 Nullable reference types
要使用 Nullable reference types,必须在项目文件或代码文件中启用该特性。要在项目文件中启用该特性,请在项目文件中添加以下行:
<Nullable>enable</Nullable>
要在代码文件中启用该特性,请在文件顶部添加以下行:
#nullable enable
# Nullable reference types 与默认值
对于可空的引用类型,默认值为 null。例如:
string? name = null;
在此示例中,变量 name
的默认值为 null。
# Nullable reference types 与非空强制
如果希望确保引用类型不为 null,可以使用非空强制。例如:
string? name = "John";
string firstName = name!;
在此示例中,变量 name
被赋值为字符串 "John",并且使用非空强制将其赋值给变量 firstName
。如果 name
的值为 null,则会引发一个异常。
# Nullable reference types 与 null 合并运算符
可以使用 null 合并运算符 (??
) 指定一个默认值,如果可空引用类型为 null,则使用该默认值。例如:
string? name = null;
string firstName = name ?? "John";
在此示例中,如果 name
的值为 null,则使用字符串 "John" 作为默认值。
# Nullable reference types 与类型转换
可以使用类型转换将可空引用类型转换为非空引用类型。例如:
string? name = "John";
string firstName = (string)name;
在此示例中,变量 name
被赋值为字符串 "John",并且使用类型转换将其赋值给变量 firstName
。如果 name
的值为 null,则会引发一个异常。
# 小结
Nullable reference types 是 C# 8.0 中的一项重要特性,它允许开发人员显式地标识一个引用类型可以为 null。使用该特性可以提高代码的可读性和维护性,同时防止空引用错误的发生。希望本文能对您有所帮助。