C# 8.0的新功能一:switch表达式

使用switch语句时,使用switch表达式可以编写更少的代码行。如果您有一个switch语句根据输入来设置/返回一个值,这将很有用。

在C#8之前,可以使用以下代码将int转换为其等效的字符串:

string word;
switch (number)
{
    case 1:
        word = "one";
        break;
    case 2:
        word = "two";
        break;
    case 3:
        word = "three";
        break;
    default:
        throw new ArgumentOutOfRangeException(nameof(number));                    
}

在前面的代码中,如果输入的int不是1,2或3,则会引发异常,否则将可变设置为字符串表示形式“一”,“二”或“三”。

在C#8中,我们可以改用switch表达式。switch表达式返回一个值,这意味着我们可以将字符串返回到word变量中,如下所示:

string word = number switch
{
    1 => "one",
    2 => "two",
    3 => "three",
    _ => throw new ArgumentOutOfRangeException(nameof(number))
};

将此版本与第一个版本进行比较,您会发现我们的代码少了很多,我们没有所有重复的casebreak

还要注意,默认块已被引发异常的表达式替换。

还要注意,由于我们不在乎该值,因此代码使用了一个_。(丢弃是“在应用程序代码中有意未使用的占位符变量”(MS))。

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值