C#探索之路:表现力不够但简洁的switch 表达式

Posted ProMer_Wang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#探索之路:表现力不够但简洁的switch 表达式相关的知识,希望对你有一定的参考价值。

C#探索之路5:表现力不够但简洁的switch表达式

switch 表达式 - 使用 switch 关键字的模式匹配表达式

一、常见的String case语句:

enum TestEnumType

    testType1,
    testType2,

public string Test(TestEnumType testValue)

    string strOuputValue = string.Empty;
    switch (testValue)
    
        case TestEnumType.testType1:
            strOuputValue = "testType1";
            break;
        case TestEnumType.testType2:
            strOuputValue = "testType2";
            break;
        default:
            strOuputValue = "默认值";
            break;
    
    return strOuputValue;

二、不那么常见的switch 表达式

但C# 8.0版本后,有了switch表达式,其实仅仅式将Switch作为一个关键字来使用,下面的例子可以很好的进行理解,就不进行深入解释了,而下划线_则相当于原来switch case中的default break;引入这一点就足够了;

public string Test(TestEnumType testValue)

    string strOuputValue = string.Empty;
    strOuputValue = testValue switch
    
        TestEnumType.testType1 => "testType1",
        TestEnumType.testType2 => "testType2",
        _ =>"默认值"
    ;
    return strOuputValue;

三、阅读文档:

如查阅文档如下图所示:

四、总结:

此次的这个发现也是由于偶然间在项目中第一次看到,这种表达方式挺新颖的,不过有的时候如果判断条件并不多的话,可以直接通过三目运算符直接替代,或者通过if else的方式取代,以及switch case常见的方式取代,所以通常来说我们会比较少遇见,但是其中的效果也是等效的,无非就是通过判断变量所满足的条件,实现对应的逻辑。
并且,如果在某些逻辑并不需要这么复杂的情况下,我的建议是直接采用可读性最好的一种方式去进行表达。无可厚非,每个人的编程习惯都不一样,符合自己的编程习惯的,符合项目组、团队的编程习惯的方式就式一个好的方式;

作者:ProMer_Wang

链接:https://blog.csdn.net/qq_43801020/article/details/128905418

本文为ProMer_Wang的原创文章,著作权归作者所有,转载请注明原文出处,欢迎转载!

以上是关于C#探索之路:表现力不够但简洁的switch 表达式的主要内容,如果未能解决你的问题,请参考以下文章

C#探索之路:反射和特性

Natasha 4.0 探索之路系列 基本的动态编译

C#探索之路:反射和特性

C#中一种替换switch语句更优雅的写法

c# 8 switch 表达式:没有找到 switch 表达式的最佳类型

Natasha 4.0 探索之路系列 模板 API