本文主要是介绍C# Unity 面向对象补全计划 之 Switch 表达式(c# 8.0++),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前置知识:lambda表达式,枚举与Switch(传统语法)C# & Unity 面向对象补全计划 之 匿名函数与Lambda表达式-CSDN博客
C# 8.0引入了 switch 表达式,是一个语法糖(类的属性get set就是一种语法糖)
基本规则:
var result = expression switch {pattern1 => result1,pattern2 => result2,..._ => defaultResult
};
expression
是你要检查的值pattern1
,pattern2
, … 是你要匹配的模式result1
,result2
, … 是对应模式匹配成功时的结果_
是默认模式,相当于传统 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++)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!