c#中的switch能處理null值嗎

c#
小樊
81
2024-09-28 05:22:58

在C#中,switch語(yǔ)句本身不能直接處理null值。switch語(yǔ)句在C# 7.0及更高版本中支持null合并運(yùn)算符(??),允許你在case語(yǔ)句中檢查null值,但這是在case標(biāo)簽或表達(dá)式中進(jìn)行的,而不是在switch語(yǔ)句的主體中。

下面是一個(gè)使用null合并運(yùn)算符的示例:

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;
}

在這個(gè)示例中,我們首先將value初始化為null。然后,我們使用null合并運(yùn)算符為value分配一個(gè)默認(rèn)值(在這個(gè)例子中是字符串"Default")。接下來(lái),我們使用switch語(yǔ)句檢查value的值。如果valuenull,我們打印一條消息。如果value是字符串"Default",我們打印另一條消息。對(duì)于所有其他值,我們打印第三條消息。

需要注意的是,這個(gè)示例中的switch語(yǔ)句并不是直接處理null值,而是通過(guò)使用null合并運(yùn)算符在case語(yǔ)句中檢查null值。

0