【发布时间】:2012-03-09 20:26:30
【问题描述】:
看到每次作为参数传递时都会创建新的值类型实例,我开始考虑使用ref 或out 关键字可以显着提高性能的场景。
一段时间后,我突然意识到,虽然我看到使用值类型的不足之处,但我不知道有什么好处。
所以我的问题相当直截了当 - 拥有值类型的目的是什么?通过复制结构而不是仅仅创建对它的新引用,我们可以获得什么?
在我看来,只有像 Java 这样的引用类型会容易得多。
编辑:为了澄清这一点,我不是指小于 8 字节(引用的最大大小)的值类型,而是指 8 字节或更多字节的值类型。 p>
例如 - 包含四个 int 值的 Rectangle 结构。
【问题讨论】:
-
Java真的只有引用类型吗?
-
一百万字节的数组如果是值类型会占用多少字节?如果它们是引用类型,它会占用多少?
-
是的。这实际上有时会成为一个问题。甚至 DateTime 也是一个对象。
-
@usr: "即使 DateTime 也是一个对象" - 不知道你想说什么
-
@dtryon:在Java中,所有用户定义的类型都是引用类型,但原始类型(如
int)不是。
标签: c# pass-by-reference pass-by-value value-type reference-type