【发布时间】:2021-10-19 12:52:19
【问题描述】:
这种方式可以转换成元组吗?
(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, bool)表示ValueTuple<string, bool>,而不是Tuple<string, bool>。 -
显然,(因为它会产生编译器错误)不可能“以这种方式转换为元组”。
-
正常投吧:
(string value, bool flag) = ((string, bool))MethodInfo.Invoke(this, param);