C# 你能在一个开关表达式中得到被打开的值吗

C# 你能在一个开关表达式中得到被打开的值吗,c#,C#,有办法做到这一点吗 inti=object.GetString()开关 { “此”=>1, “那”=>2, “另一个”=>3, _=>someMethod([开关值]) } 要在开关表达式中使用打开的值? 还是我必须这么做 var myString=object.GetString() int i=myString开关 { “此”=>1, “那”=>2, “另一个”=>3, _=>someMethod(myString) } 我知道声明myString没什么大不了的;我只是想知道语法是否存在

有办法做到这一点吗

inti=object.GetString()开关
{
“此”=>1,
“那”=>2,
“另一个”=>3,
_=>someMethod([开关值])
}
要在开关表达式中使用打开的值? 还是我必须这么做

var myString=object.GetString()
int i=myString开关
{
“此”=>1,
“那”=>2,
“另一个”=>3,
_=>someMethod(myString)
}
我知道声明
myString
没什么大不了的;我只是想知道语法是否存在。

这个呢

int i = object.GetString() switch
{
    "this" => 1,
    "that" => 2,
    "the other" => 3,
    { } s => someMethod(s)
}
它将得到除
null
之外的任何内容

当然,它只有在您想要捕获任何类型时才可用。如果您确定它将是一个
字符串
值,并且someMethod也需要一个
字符串
值,您可以这样做:

string s => someMethod(s)
是的,很简单:

int i = object.GetString() switch
{
    "this" => 1,
    "that" => 2,
    "the other" => 3,
    string value => someMethod(value)
};