Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何解开元组?_C#_Tuples_C# 7.0_Unboxing - Fatal编程技术网

C# 如何解开元组?

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只能将赋值、调用、递增、递减、等待和新对象表达式用作语句

我已经装箱了tuple:

(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;