Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#8开关内部的表达式_C#_Switch Statement_C# 8.0 - Fatal编程技术网

C#8开关内部的表达式

C#8开关内部的表达式,c#,switch-statement,c#-8.0,C#,Switch Statement,C# 8.0,我希望能够从新的C#开关表达式模式匹配中调用方法/局部函数 我举了一个例子: string result = value switch { IsFizz(value) => "Fizz", IsBuzz(value) => "Buzz", (IsFizz(value) && IsBuzz(value)) => "

我希望能够从新的C#开关表达式模式匹配中调用方法/局部函数

我举了一个例子:

        string result = value switch
        {
            IsFizz(value) => "Fizz",
            IsBuzz(value) => "Buzz",
            (IsFizz(value) && IsBuzz(value)) => "FizzBuzz",
            _ => value.ToString()
        };
但是,我得到以下错误:

单元素解构模式需要一些其他语法 消除歧义。建议添加一个丢弃指示符“\u1” 在关闭参数“')”之后

应为Sytnax错误“=>”

无效的表达式项“&&”


不能以这种方式使用新开关吗?

是,但在
when
子句中:

字符串结果=值开关
{
_当IsFizz(值)=>“Fizz”时,
_当IsBuzz(值)=>“Buzz”时,
_当(IsFizz(值)&&IsBuzz(值))=>“FizzBuzz”,
_=>value.ToString()
};

(难道不应该先进行
FizzBuzz
测试吗?

很有趣-我很惊讶有必要放弃它。我想知道这是否表明在这里使用开关表达式不是正确的选择。