首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么.Net 4.0中的新元组类型是引用类型(类)而不是值类型(结构)

为什么.Net 4.0中的新元组类型是引用类型(类)而不是值类型(结构)
EN

Stack Overflow用户
提问于 2010-03-10 00:40:05
回答 2查看 16.9K关注 0票数 89

有没有人知道答案和/或对此有意见?

由于元组通常不会很大,因此我认为使用结构比使用类更有意义。你怎么说?

EN

回答 2

Stack Overflow用户

发布于 2010-04-27 03:28:19

对于二元组,您仍然可以始终使用早期版本的通用类型系统中的KeyValuePair。它是一种值类型。

对Matt Ellis的文章稍作澄清的是,当不可变性生效时,引用类型和值类型之间的使用语义差异只是“微小的”(当然,这里就是这种情况)。尽管如此,我认为在BCL设计中最好不要引入让Tuple在某个阈值上交叉到引用类型的混乱。

票数 4
EN

Stack Overflow用户

发布于 2010-05-07 00:33:00

我不知道,但是如果你用过F#,元组是语言的一部分。如果我创建了一个.dll并返回了一个元组类型,那么有一个类型来放入它就好了。我猜想现在F#已经是语言(.Net 4)的一部分了,为了适应F#中的一些常见结构,对CLR进行了一些修改

来自http://en.wikibooks.org/wiki/F_Sharp_Programming/Tuples_and_Records

代码语言:javascript
复制
let scalarMultiply (s : float) (a, b, c) = (a * s, b * s, c * s);;

val scalarMultiply : float -> float * float * float -> float * float * float

scalarMultiply 5.0 (6.0, 10.0, 20.0);;
val it : float * float * float = (30.0, 50.0, 100.0)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2410710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档