条件判断与模式匹配
if/else、三元运算符、switch 表达式(C# 8+)、模式匹配 is/when
条件判断与模式匹配
C# 的 if-else 和传统语言一样,但 switch 表达式和模式匹配让它远超"条件判断"的范畴。
学完本章你将: 掌握 if/else、switch 表达式、is 模式匹配。
if / else
csharp
int score = 85;
if (score >= 90)
Console.WriteLine("优秀");
else if (score >= 80)
Console.WriteLine("良好"); // 输出这句
else
Console.WriteLine("加油");
// 三目运算符
string grade = score >= 60 ? "及格" : "不及格";
is 模式匹配
csharp
// 类型模式
if (obj is string s && s.Length > 0)
Console.WriteLine(s.ToUpper());
// 属性模式
if (person is { Age: >= 18, Name: string name })
Console.WriteLine($"{name} 已成年");
// 关系模式
int temp = 25;
if (temp is >= 20 and <= 30)
Console.WriteLine("舒适温度");
switch 表达式(C# 8+)
csharp
// 传统 switch 语句
string result;
switch (day)
{
case 1: result = "周一"; break;
case 2: result = "周二"; break;
default: result = "其他"; break;
}
// switch 表达式(更简洁,可直接赋值)
var result2 = day switch
{
1 => "周一",
2 => "周二",
3 => "周三",
_ => "其他", // _ 是弃元(discard),匹配一切
};