在 C# 中,使用可空类型(nullable types)可以提高代码的类型安全性。可空类型允许变量具有一个默认值(null),而不仅仅是默认值。要确保类型安全,请遵循以下准则:
- 使用
?
符号定义可空类型:在类型后面添加一个问号(?),表示该类型可以是可空的。例如,int?
表示一个整数可以是可空的。
int? nullableInt;
- 为可空类型提供默认值:在使用可空类型时,为其提供一个默认值,以避免使用
null
。例如,使用??
操作符为可空类型提供默认值。
int? nullableInt = null;
int defaultValue = https://www.yisu.com/ask/nullableInt ?? 0; // 如果 nullableInt 为 null,则将 defaultValue 设置为 0>
- 在方法参数中使用可空类型:将方法参数声明为可空类型,以便调用者可以传递
null
值。在方法内部,检查参数是否为 null
,然后采取适当的措施。
void PrintNumber(int? number)
{
if (number == null)
{
Console.WriteLine("Number is null");
}
else
{
Console.WriteLine("Number is: " + number);
}
}
- 在返回值中使用可空类型:如果方法可能返回
null
值,将其返回类型声明为可空类型。这样,调用者可以检查返回值是否为 null
,然后采取适当的措施。
int? FindUserById(int id)
{
// 查找用户并返回其 ID,如果未找到则返回 null
return userRepository.FindUserById(id);
}
- 使用
null-conditional
操作符:在访问可空类型的成员时,使用 ?.
操作符可以避免在成员为 null
时引发异常。
int? nullableInt = GetNullableInt();
int value = https://www.yisu.com/ask/nullableInt?.Value; // 如果 nullableInt 为 null,则 value 将被设置为 0>
遵循这些准则,可以确保在使用可空类型时保持代码的类型安全。