如何将值转换为元组(string, bool)



是否可以以这种方式转换为元组?

(string value, bool flag) value1 = MethodInfo.Invoke(this, param) as (string, bool);

不幸的是它抛出:

" as操作符必须与引用类型或可空类型一起使用('(string, bool)'是非空值类型)">

只能这样工作:

Tuple<string, bool> value1 = MethodInfo.Invoke(this, param) as Tuple<string, bool>;

可以使用强制转换表达式进行强制转换:

(string value, bool flag) tuple = ((string, bool)) MethodInfo.Invoke(this, param);

但与使用as不同,如果Invoke的返回值不是(string, bool),则会崩溃。如果你不喜欢这样,你可以使用模式匹配:

if (methodInfo.Invoke(this, param) is (string value, bool flag))
{
Console.WriteLine($"({value}, {flag})");
// assign it to a new variable if you want it as one "thing":
(string value, bool flag) tuple = (value, flag);
}

相关内容

  • 没有找到相关文章

最新更新