C#4.0有了Tuple真是好啊

ProjectDD 2010-05-16 09:28:13
这样避免了很多小结构的定义,在多组件交互时,我们再也不必为了共用对象发愁了,期待以后Tuple思想更上一层楼

这里有没有那位达人清楚,Tuple的内在实现的,给详细讲讲。
...全文
779 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
旭子 2010-05-20
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 li45214521 的回复:]

tuple 是F#的类库
[/Quote]
F#这个语言是C#的升级吗。。我不知道。。
qiqishardgel 2010-05-16
  • 打赏
  • 举报
回复
Tuple常常译为“组元”,在大部分支持Tuple的语言中,常常表示成员数目确定,每个成员类型也确定的结构。常常用于表示函数的多个返回值或者查询的结果等。Tuple应当是强类型的,即所有成员的类型在编译时确定。比如,假想语法下

Dim t = New Tuple(Of String, Integer, Double)

那么t将具有三个成员,该数目无法改变;同时三个成员的类型分别为String, Integer和Double,也无法改变。如你所见,Tuple可以看作不用事先声明的结构体,可以根据所使用的场合灵活地创建。
ProjectDD 2010-05-16
  • 打赏
  • 举报
回复
ITuple在那个名称空间里

这样有的结构好象C#2.0就可以实现了吧,为什么我当时没想到自己实现一个呢?

网上说这个东西和函数式编程设计思想有关,有了这样的东西,真的觉得很多类结构似乎没很必要存在了一样。网上说Tuple等于是一种固定成员的泛型集合,这样来看话,应该很平常。只是原来 没提出来,没想到而已
li45214521 2010-05-16
  • 打赏
  • 举报
回复
tuple 是F#的类库
  • 打赏
  • 举报
回复
路过,学习!
aofengdaxia 2010-05-16
  • 打赏
  • 举报
回复
这个不是和泛型、C++的模板有点一样了
路人乙e 2010-05-16
  • 打赏
  • 举报
回复
[Serializable]
public class Tuple<T1, T2> : IStructuralEquatable, IStructuralComparable, IComparable, ITuple
{
// Fields
private T1 m_Item1;
private T2 m_Item2;

// Methods
public Tuple(T1 item1, T2 item2)
{
this.m_Item1 = item1;
this.m_Item2 = item2;
}


string ITuple.ToString(StringBuilder sb)
{
sb.Append(this.m_Item1);
sb.Append(", ");
sb.Append(this.m_Item2);
sb.Append(")");
return sb.ToString();
}

int ITuple.Size
{
get
{
return 2;
}
}

// Properties
public T1 Item1
{
get
{
return this.m_Item1;
}
}

public T2 Item2
{
get
{
return this.m_Item2;
}
}

//More and more...
}
youyou2404 2010-05-16
  • 打赏
  • 举报
回复
下面的大神解释下。
颤菊大师 2010-05-16
  • 打赏
  • 举报
回复
额。。。。不知道什么玩意,下面的大神解释下。
htl258_Tony 2010-05-16
  • 打赏
  • 举报
回复
帮顶,学习。
viena 2010-05-16
  • 打赏
  • 举报
回复
唔知系咩

110,532

社区成员

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

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

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