gpt4 book ai didi

c# - 长生命周期对象的结构与类

转载 作者:可可西里 更新时间:2023-11-01 03:12:33 25 4
gpt4 key购买 nike

当您需要非常小的对象时,比如包含 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com