两种风格的C#switch-return语句,有什么区别?

时间:2017-10-26 16:46:50

标签: c# switch-statement

我正在处理遗留的C#代码,并且看到了两种switch语句样式。我来自Python背景,所以这两个switch使用之间差异的细微差别使我不知道

示例#1

public string SwitchExample1(int value)
{
    switch(value)
    {
        case 1: return "a";
        case 2: return "b";
        default: return "c";
    }
}

示例#2

public string SwitchExample2(int value)
{
    switch(value)
    {
        case 1: return "a";
        case 2: return "b";
    }

    return "c";
}

在功能上它们是相同的 - 它们都返回" c"何时value != 1 && value != 2

这只是一种风格差异吗?或者是否有最佳实践要求您使用一个而不是另一个?

2 个答案:

答案 0 :(得分:3)

没有实际差异。两种格式的行为都与:

相同
if(value==1)
    return "a";
else if(value==2)
    return "b";
else
    return "c";

强烈建议使用default的第一种方法。这是遵循风格指南的那个,这将使代码的意图更加清晰。

答案 1 :(得分:-2)

大多数风格指南都说应该使用'默认'语句。