今天在工作中,我们现在和我们一起做了一次代码审查,但今天我看到了一个我以前见过的语法。我在网上搜索它无济于事,更有趣的是,尽管使用相同版本的Visual Studio,即2017 Enterprise,当我尝试重新创建我所看到的内容时,我在家中遇到语法错误今天上班。它看起来像这样:
switch (someObject) {
case TypeOne valueOne: action1(); break;
case TypeTwo valueTwo: action2(); break;
// ... and so on
}
换句话说,看起来他们一次性检查了类型和价值。但就像我说的,我无法在互联网上找到它,我在家里遇到语法错误。我知道C#7中有很多新东西,特别是在语法糖方面。你能解释一下吗?
答案 0 :(得分:13)
这是一个new C# 7 feature:模式匹配switch语句,它匹配类型。
这段代码做了什么,给出了第一个分支:
someObject
是,是源自还是实现类型TypeOne
。someObject
转换为TypeOne
类型valueOne
。valueOne
。