C# 可空类型(Nullable)
C# 可空类型(Nullable)是一种用于表示变量可以具有空(null)值的特殊类型。在 C# 中,如果一个变量没有被赋值,那么它将自动地被赋值为 null,这通常是一个不合法的值。然而,有时候我们需要表示一个变量可以为空值,这时候就需要使用可空类型。
# 定义可空类型
C# 中的可空类型是通过在类型名称后面加上一个问号(?)来定义的,例如:
int? nullableInt = null;
double? nullableDouble = 3.14;
bool? nullableBool = true;
在上面的例子中,nullableInt
被定义为一个可空的整数类型,它的值为 null。nullableDouble
被定义为一个可空的双精度浮点数类型,它的值为 3.14。nullableBool
被定义为一个可空的布尔类型,它的值为 true。
# 操作可空类型
当我们使用可空类型时,需要注意一些操作的差异。例如,如果我们想要获取一个可空类型的值,需要使用 .Value
属性:
int? nullableInt = null;
if (nullableInt.HasValue)
{
int value = nullableInt.Value;
Console.WriteLine(value); // 这里不会输出任何内容,因为 nullableInt 的值为 null。
}
在上面的例子中,我们首先检查 nullableInt
是否有值,然后使用 .Value
属性获取其值。由于 nullableInt
的值为 null,所以我们不会在控制台输出任何内容。
另外,还可以使用 ??
运算符来给可空类型一个默认值。例如:
int? nullableInt = null;
int value = nullableInt ?? 0;
Console.WriteLine(value); // 输出 0
在上面的例子中,由于 nullableInt
的值为 null,所以我们使用 ??
运算符将其替换为默认值 0。
# 示例代码
下面是一个完整的示例代码,展示了如何使用可空类型:
using System;
class Program
{
static void Main()
{
int? nullableInt = null;
double? nullableDouble = 3.14;
bool? nullableBool = true;
if (nullableInt.HasValue)
{
int value = nullableInt.Value;
Console.WriteLine(value);
}
int value2 = nullableInt ?? 0;
Console.WriteLine(value2);
double value3 = nullableDouble ?? 0.0;
Console.WriteLine(value3);
bool value4 = nullableBool ?? false;
Console.WriteLine(value4);
}
}
在上面的示例代码中,我们定义了三个可空类型的变量 nullableInt
、nullableDouble
和 nullableBool
,然后分别演示了如何使用 .Value
属性和 ??
运算符获取其值,并将其输出到控制台上。
上次更新: 2023/04/26, 22:10:06