在blog entry, Luca Bolognese上考虑结构与类作为成员字段的想法:
使用结构的原因不是 在上分配一个额外的对象 堆。这允许这个解决方案 简单地编码就像'高性能'一样 类本身的字段。或 至少我是这么认为的......
这有多准确?
首先,他不是指在堆上分配一个额外的对象?
并且,不会使用结构稍微减少分配时间(特别是如果类成员是延迟加载的),代价是增加内存占用量?
在某些情况下,你会推荐这种针对类的结构吗?
答案 0 :(得分:4)
我认为他的意思是写堆,他只是错误地写了堆栈。
结构或类的问题经常出现。这是一个example。我认为最好遵循这个常见的建议:
MSDN的答案是:Choosing Between Classes and Structures。
基本上,该页面为您提供了一个4项清单,并说除非您的类型符合所有标准,否则使用课程。
除非类型具有以下所有特征,否则不要定义结构:
* It logically represents a single value, similar to primitive types (integer, double, and so on).
* It has an instance size smaller than 16 bytes.
* It is immutable.
* It will not have to be boxed frequently.
有时候你不应该遵循这个建议吗?也许,但只有在你通过剖析证明它之后。