我希望能够在新的C#开关表达式模式匹配中调用方法/本地函数。
我有一个例子:
string result = value switch
{
IsFizz(value) => "Fizz",
IsBuzz(value) => "Buzz",
(IsFizz(value) && IsBuzz(value)) => "FizzBuzz",
_ => value.ToString()
};然而,我得到以下错误:
单元素解构模式需要一些其他语法来消除歧义.建议在close paren‘之后添加一个废弃的指示符'_’。
Sytnax错误,“=>”期望
无效表达式术语‘&’
难道不可能以这种方式使用新的开关吗?
发布于 2020-04-07 13:27:41
是的,但在when条款中:
string result = value switch
{
_ when IsFizz(value) => "Fizz",
_ when IsBuzz(value) => "Buzz",
_ when (IsFizz(value) && IsBuzz(value)) => "FizzBuzz",
_ => value.ToString()
};( FizzBuzz测试不应该放在第一位吗?)
https://stackoverflow.com/questions/61081083
复制相似问题