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)
};