gpt4 book ai didi

c# - 在C#中,如何使用switch对非常量字符串值进行模式匹配?

转载 作者:行者123 更新时间:2023-12-05 08:21:42 26 4
gpt4 key购买 nike

在C#中,如何使用switch对非常量字符串值进行模式匹配?

我希望能够使用非常量字符串变量作为 switch 语句中的匹配目标。

我有下面的代码,但我遇到错误 CS0150: A constant value is expected at case expectedValue:

public bool UseStandardSwitch(string inputValue)
{
var expectedValue = "SomeValue";

bool result = default;
var DoSomething = () => { result = true; };

switch (inputValue)
{
case expectedValue:
DoSomething();
break;
default:
break;
}
return result;
}

有没有办法达到类似的效果?

最佳答案

无需引入变量(如您的回答)- 您可以将 discard 与 case guard 结合使用:

public bool UseStandardSwitch(string inputValue)
{
var expectedValue = Console.ReadLine()!;
Func<bool> DoSomething = () => true;

return inputValue switch
{
_ when inputValue.Equals(expectedValue) => DoSomething(),
_ when inputValue.Equals(expectedValue + "1") => DoSomething(),
_ => throw new ArgumentException(),
};
}

关于c# - 在C#中,如何使用switch对非常量字符串值进行模式匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70215555/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com