C# 如何解开元组?
我已经装箱了tuple:C# 如何解开元组?,c#,tuples,c#-7.0,unboxing,C#,Tuples,C# 7.0,Unboxing,我已经装箱了tuple: (int, string) tuple = (1, "abc"); object box = tuple; 如何从框中获取元组?将对象转换回元组的正确语法是什么 我的尝试: var deconstruct = (int, string)box; 这显然是错误的: 错误CS1525无效的表达式术语“int” 错误CS1525无效的表达式术语“字符串” 错误CS1002;期望 错误CS0201只能将赋值、调用、递增、递减、等待和新对象表达式用作语句
(int, string) tuple = (1, "abc");
object box = tuple;
如何从框
中获取元组?将对象
转换回元组的正确语法是什么
我的尝试:
var deconstruct = (int, string)box;
这显然是错误的:
错误CS1525无效的表达式术语“int”
错误CS1525无效的表达式术语“字符串”
错误CS1002;期望
错误CS0201只能将赋值、调用、递增、递减、等待和新对象表达式用作语句
您是否尝试过(int,string)解构=(int,string)框;强制转换的语法是
(type)expr
。元组的类型是(int,string)
。因此:((int,string))box
@JeroenMostert,在看到答案显而易见之后,我不知何故被已经有一组大括号弄糊涂了。它不是最可读的语法,即使它遵循逻辑模式——我们可以责怪C首先引入了强制转换语法(元组语法似乎很好)。简单!一对用于元组,另一对用于强制转换。
ValueTuple<int, string> t = (ValueTuple<int, string>)box;
(int, string) t = ((int, string))box;