gpt4 book ai didi

c# - C# switch 语句的默认标签将如何处理可为 null 的枚举?

转载 作者:IT王子 更新时间:2023-10-29 03:48:29 25 4
gpt4 key购买 nike

C# switch 语句的默认标签将如何处理可为 null 的枚举?

默认标签会捕获空值和任何未处理的情况吗?

最佳答案

如果为空,它将命中默认标签。

public enum YesNo
{
Yes,
No,
}

public class Program
{
public static void Main(string[] args)
{
YesNo? value = null;
switch (value)
{
case YesNo.Yes:
Console.WriteLine("Yes");
break;
case YesNo.No:
Console.WriteLine("No");
break;
default:
Console.WriteLine("default");
break;
}
}
}

程序将打印default

除非处理null。

public class Program
{
public static void Main(string[] args)
{
YesNo? value = null;
switch (value)
{
case YesNo.Yes:
Console.WriteLine("Yes");
break;
case YesNo.No:
Console.WriteLine("No");
break;
case null:
Console.WriteLine("NULL");
break;
default:
Console.WriteLine("default");
break;
}
}
}

打印NULL

如果您有一个后来添加的未处理的枚举值:

public enum YesNo
{
Yes,
No,
FileNotFound,
}

public class Program
{
public static void Main(string[] args)
{
YesNo? value = YesNo.FileNotFound;
switch (value)
{
case YesNo.Yes:
Console.WriteLine("Yes");
break;
case YesNo.No:
Console.WriteLine("No");
break;
default:
Console.WriteLine("default");
break;
}
}
}

它仍然打印default

关于c# - C# switch 语句的默认标签将如何处理可为 null 的枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14950532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com