什么时候应该在C#中使用struct而不是class?我的概念模型是当项只是值类型的集合时使用结构.一种逻辑上将它们组合在一起形成一个有凝聚力的整体的方法.
我在这里遇到了这些规则:
这些规则有效吗?结构在语义上意味着什么?
当你需要拥有非常小的物体时,比如说它包含2个浮动属性,并且你将拥有数百万个不会立即被"摧毁"的物体,结构是更好的选择还是类?
就像在xna中作为库一样,有point3s等作为结构但是如果你需要长时间保持这些值,它会造成性能威胁吗?
我在C#中创建一个几何库,我将需要以下不可变类型:
Vector2f(2 floats - 8字节)Vector2d(2 doubles - 16字节)Vector3f(3 floats - 12字节)Vector3d(3 doubles - 24字节)Vector4f(4 floats - 16字节)Vector4d(4 doubles - 32字节)我试图确定是否使它们成为结构或类. 如果大小不超过16个字节,MSDN建议仅使用结构.该引用似乎是从2005年开始的.16个字节仍然是最大建议大小?
我确信使用float向量的结构比使用类更有效,但我应该怎么做double向量?我是否应该使它们的结构一致,或者我应该让它们上课?
更新: 看起来每个人都同意他们应该结构化.谢谢你的答案.