在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值。