当前位置: 首页> 房产> 政策 > C# Unity 面向对象补全计划 之 Switch 表达式(c# 8.0++)

C# Unity 面向对象补全计划 之 Switch 表达式(c# 8.0++)

时间:2025/7/16 9:33:11来源:https://blog.csdn.net/2301_77947509/article/details/141360257 浏览次数:0次

前置知识:lambda表达式,枚举与Switch(传统语法)C# & Unity 面向对象补全计划 之 匿名函数与Lambda表达式-CSDN博客

C# 8.0引入了 switch 表达式,是一个语法糖(类的属性get set就是一种语法糖)

基本规则:

var result = expression switch {pattern1 => result1,pattern2 => result2,..._ => defaultResult
};
  • expression 是你要检查的值
  • pattern1pattern2, … 是你要匹配的模式
  • result1result2, … 是对应模式匹配成功时的结果
  • _ 是默认模式,相当于传统 switch 语句中的 default

 实战演示:

传统枚举和Switch

// See https://aka.ms/new-console-template for more information
Age myAge = Age.young;
SelectAge(myAge);void SelectAge(Age age){ switch (age) {case Age.kid:Console.WriteLine("小孩");break;case Age.young:Console.WriteLine("年轻");break;case Age.middleAge:Console.WriteLine("中年");break;case Age.old:Console.WriteLine("老年");break;default:break;} 
}
public enum Age:int{kid,young,middleAge,old
}

都什么年代了还在用传统Switch!?

// See https://aka.ms/new-console-template for more information
Age myAge = Age.young;
SelectAge(myAge);void SelectAge(Age age){var result = age switch {Age.kid => "小孩",Age.young => "年轻",Age.middleAge => "中年",Age.old => "老年",_ => null};Console.WriteLine(result);
}
public enum Age:int{kid,young,middleAge,old
}

可以看到在这个语法糖之中,返回值会被更加轻松简单地运用

 

 

关键字:C# Unity 面向对象补全计划 之 Switch 表达式(c# 8.0++)

版权声明:

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

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

责任编辑: