C#8开关内部的表达式
我希望能够从新的C#开关表达式模式匹配中调用方法/局部函数 我举了一个例子: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)) => "
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
测试吗?很有趣-我很惊讶有必要放弃它。我想知道这是否表明在这里使用开关表达式不是正确的选择。