首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# 8交换机内的表达式

C# 8交换机内的表达式
EN

Stack Overflow用户
提问于 2020-04-07 13:25:13
回答 1查看 173关注 0票数 1

我希望能够在新的C#开关表达式模式匹配中调用方法/本地函数。

我有一个例子:

代码语言:javascript
复制
        string result = value switch
        {
            IsFizz(value) => "Fizz",
            IsBuzz(value) => "Buzz",
            (IsFizz(value) && IsBuzz(value)) => "FizzBuzz",
            _ => value.ToString()
        };

然而,我得到以下错误:

单元素解构模式需要一些其他语法来消除歧义.建议在close paren‘之后添加一个废弃的指示符'_’。

Sytnax错误,“=>”期望

无效表达式术语‘&’

难道不可能以这种方式使用新的开关吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-07 13:27:41

是的,但在when条款中:

代码语言:javascript
复制
        string result = value switch
        {
            _ when IsFizz(value) => "Fizz",
            _ when IsBuzz(value) => "Buzz",
            _ when (IsFizz(value) && IsBuzz(value)) => "FizzBuzz",
            _ => value.ToString()
        };

( FizzBuzz测试不应该放在第一位吗?)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61081083

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档