在C#中,switch
语句本身不能直接处理null
值。switch
语句在C# 7.0及更高版本中支持null
合并运算符(??
),允许你在case
语句中检查null
值,但这是在case
标签或表达式中进行的,而不是在switch
语句的主体中。
下面是一个使用null
合并运算符的示例:
object value = null;
value = value ?? "Default";
switch (value)
{
case null:
Console.WriteLine("Value is null");
break;
case string s when s == "Default":
Console.WriteLine("Value is default");
break;
default:
Console.WriteLine("Value is something else");
break;
}
在这个示例中,我们首先将value
初始化为null
。然后,我们使用null
合并运算符为value
分配一个默认值(在这个例子中是字符串"Default"
)。接下来,我们使用switch
语句检查value
的值。如果value
是null
,我们打印一条消息。如果value
是字符串"Default"
,我们打印另一条消息。对于所有其他值,我们打印第三条消息。
需要注意的是,这个示例中的switch
语句并不是直接处理null
值,而是通过使用null
合并运算符在case
语句中检查null
值。