您的位置:首页 > 教育 > 锐评 > 网页设计免费下载_最近热点新闻头条_杭州seo平台_河南网站建设定制

网页设计免费下载_最近热点新闻头条_杭州seo平台_河南网站建设定制

2025/8/28 19:39:11 来源:https://blog.csdn.net/lxz458912769/article/details/143033566  浏览:    关键词:网页设计免费下载_最近热点新闻头条_杭州seo平台_河南网站建设定制
网页设计免费下载_最近热点新闻头条_杭州seo平台_河南网站建设定制

在 C# 中,switch 语句用于基于表达式的值执行不同的代码块。switch 语句类似于一系列 if-else 语句,但通常更简洁、易读。以下是 switch 语句的基本用法和一些高级特性。

基本用法

 

csharp复制代码

using System;
class Program
{
static void Main()
{
int day = 3;
switch (day)
{
case 1:
Console.WriteLine("Monday");
break;
case 2:
Console.WriteLine("Tuesday");
break;
case 3:
Console.WriteLine("Wednesday");
break;
case 4:
Console.WriteLine("Thursday");
break;
case 5:
Console.WriteLine("Friday");
break;
case 6:
Console.WriteLine("Saturday");
break;
case 7:
Console.WriteLine("Sunday");
break;
default:
Console.WriteLine("Invalid day");
break;
}
}
}

特性说明

  1. case 标签:每个 case 标签对应一个要匹配的值。
  2. break 语句:如果匹配成功,执行相应的代码块。break 语句防止执行流进入下一个 case 块(即防止“贯穿”现象)。
  3. default 标签:如果表达式的值不匹配任何 case 标签,则执行 default 块的代码。default 标签是可选的。

高级用法

1. switch 表达式(C# 8.0 及以上)

从 C# 8.0 开始,switch 语句也可以用作表达式,返回一个值。

 

csharp复制代码

using System;
class Program
{
static void Main()
{
int day = 3;
string dayName = day switch
{
1 => "Monday",
2 => "Tuesday",
3 => "Wednesday",
4 => "Thursday",
5 => "Friday",
6 => "Saturday",
7 => "Sunday",
_ => "Invalid day"
};
Console.WriteLine(dayName);
}
}
2. 模式匹配(C# 7.0 及以上)

C# 7.0 引入了模式匹配,可以在 switch 语句中使用 when 子句进行更复杂的条件判断。

 

csharp复制代码

using System;
class Program
{
static void Main()
{
object obj = "Hello";
switch (obj)
{
case int i:
Console.WriteLine($"Integer: {i}");
break;
case string s when s.Length > 5:
Console.WriteLine($"Long string: {s}");
break;
case string s:
Console.WriteLine($"Short string: {s}");
break;
default:
Console.WriteLine("Unknown type");
break;
}
}
}
3. 多个 case 标签合并

从 C# 7.0 开始,你可以合并多个 case 标签。

 

csharp复制代码

using System;
class Program
{
static void Main()
{
int day = 6;
switch (day)
{
case 6:
case 7:
Console.WriteLine("Weekend");
break;
case 1:
case 2:
case 3:
case 4:
case 5:
Console.WriteLine("Weekday");
break;
default:
Console.WriteLine("Invalid day");
break;
}
}
}

注意事项

  • switch 语句中的表达式必须是可比较的(如 intstringEnum 等)。
  • 每个 case 块通常应以 break 语句结束,以避免执行流进入下一个 case 块。
  • default 块是可选的,但如果表达式不匹配任何 case 标签且没有 default 块,则不执行任何操作。

通过这些用法和特性,switch 语句在 C# 中成为了一种强大且灵活的控制流工具。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com