当您需要非常小的对象时,比如包含 2 个 float 属性,并且您将拥有数百万个不会立即被“销毁”的对象,结构是更好的选择还是类?
就像在作为库的 xna 中,有 point3s 等作为结构,但如果您需要长时间保留这些值,它会不会对性能造成威胁?
最佳答案
与大多数关于结构的问题相反,这实际上似乎是对结构的一个很好的使用。如果它包含的数据是值类型,并且您将使用其中的大量数据,那么结构会很有效。
一些提示:
::结构不应大于 16 字节,否则将失去性能优势。
::使结构不可变。这使用法更加清晰。
例子:
public struct Point3D {
public float X { get; private set; }
public float Y { get; private set; }
public float Z { get; private set; }
public Point3D(float x, float y, float z) {
X = x;
Y = y;
Z = z;
}
public Point3D Invert() {
return new Point3D(-X, -Y, -Z);
}
}
关于c# - 长生命周期对象的结构与类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/608392/