【发布时间】:2016-02-15 13:01:53
【问题描述】:
在 SO 和互联网上,“为什么 struct 应该是小型的”的许多答案通常是指性能,但没有一个解释 为什么。有没有人能解释一下?
【问题讨论】:
-
因为它是一个值类型,并且值在传递给方法或从方法返回或分配时被复制。
-
@leppie 那么它是关于更少的内存复制?
标签: .net performance struct clr
在 SO 和互联网上,“为什么 struct 应该是小型的”的许多答案通常是指性能,但没有一个解释 为什么。有没有人能解释一下?
【问题讨论】:
标签: .net performance struct clr
Struct 是一种值类型,例如当它被传递给函数时 - 它被复制了。因此,如果 struct 的大小为 512 位 - 所有 512 位都将被复制。如果您将传递引用类型 - 将仅复制对这 512 位的 32/64 位引用。来自MSDN
接下来,引用类型赋值复制引用,而值类型赋值复制整个值。因此,大引用类型的赋值比大值类型的赋值便宜。
【讨论】: