Tuple问题

笑对最好 2016-03-23 11:49:00
1.静态函数方式
var tt = Tuple.Create<int, int, int, int, int, int, int,Tuple<int,int>>(1,2,3,4,5,6,7, Tuple.Create(8,9));

Console.WriteLine(tt.Rest.Item1.Item1);
Console.WriteLine(tt.Rest.Item1.Item2);
2.构造函数方式
Tuple<int, int, int, int, int, int, int, Tuple<int, int, int>> test5 = new Tuple<int, int, int, int, int, int, int, Tuple<int, int, int>>(1, 2, 3, 4, 5, 6, 7, new Tuple<int, int, int>(8, 9, 10));
Console.WriteLine(test5.Rest.Item1 + test5.Rest.Item2 + test5.Rest.Item3);

两种方式创建的超过8个的Tuple,访问方式怎么不一样。
用Create静态方法是tt.Rest.Item1.Item1,tt.Rest.Item1.Item2
用构造函数是test5.Rest.Item1,test5.Rest.Item2
...全文
146 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
笑对最好 2016-04-12
  • 打赏
  • 举报
回复
引用 4 楼 shingoscar 的回复:
public static Tuple<T1, T2, T3, T4, T5, T6, T7, Tuple<T8>> Create<T1, T2, T3, T4, T5, T6, T7, T8>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8)
{
	return new Tuple<T1, T2, T3, T4, T5, T6, T7, Tuple<T8>>(item1, item2, item3, item4, item5, item6, item7, new Tuple<T8>(item8));
}
Create第8个参数类型是Tuple<T8> 然后你传入的T8是Tuple<int,int>,就变成了Tuple<Tuple<int,int>>
明了,没去看定义。第8个参数。
笑对最好 2016-04-12
  • 打赏
  • 举报
回复
引用 3 楼 xiaoguidangjiajia 的回复:
tt最后的类型: Tuple<int, int, int, int, int, int, int, Tuple<Tuple<int, int>>> test5 类型: Tuple<int, int, int, int, int, int, int, Tuple<int, int, int>> 从这里看就知道为什么了。至于tt的类型为什么会是那样,就需要楼主自己仔细想一下了
明白了,没去看Create的8个参数的定义。
笑对最好 2016-03-24
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
没问题,但是三个int相加不是连接起来,而是求和。 比如1 2 3 那么是6,不是123
我说的是访问方式, 一个是tt.Rest.Item1.Item1 一个是test5.Rest.Item1
Poopaye 2016-03-24
  • 打赏
  • 举报
回复
public static Tuple<T1, T2, T3, T4, T5, T6, T7, Tuple<T8>> Create<T1, T2, T3, T4, T5, T6, T7, T8>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8)
{
	return new Tuple<T1, T2, T3, T4, T5, T6, T7, Tuple<T8>>(item1, item2, item3, item4, item5, item6, item7, new Tuple<T8>(item8));
}
Create第8个参数类型是Tuple<T8> 然后你传入的T8是Tuple<int,int>,就变成了Tuple<Tuple<int,int>>
小鬼当家家 2016-03-24
  • 打赏
  • 举报
回复
tt最后的类型: Tuple<int, int, int, int, int, int, int, Tuple<Tuple<int, int>>> test5 类型: Tuple<int, int, int, int, int, int, int, Tuple<int, int, int>> 从这里看就知道为什么了。至于tt的类型为什么会是那样,就需要楼主自己仔细想一下了
threenewbee 2016-03-23
  • 打赏
  • 举报
回复
没问题,但是三个int相加不是连接起来,而是求和。 比如1 2 3 那么是6,不是123

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧