c#类动态内存的反初始化
本文关键字:初始化 内存 动态 | 更新日期: 2023-09-27 18:12:28
我正在使用一个在构造期间动态分配数组的类,如下所示:
class HeightMap
{
private int width;
private int height;
private ulong numPixels;
private float[,] value;
public HeightMap(int width, int height)
{
if (width <= 0) throw new Exception("Invalid Dimension: Width");
if (height <= 0) throw new Exception("Invalid Dimension: Height");
// Make sure there is an uneven width and height (for allowing diamond square algorithm)
if ((width % 2) == 0) width++;
if ((height % 2) == 0) height++;
this.numPixels = (ulong)(width * height);
this.width = width;
this.height = height;
this.value = new float[width, height];
}
}
我是否需要实现IDisposable
以在销毁时释放value
数组,或者在对象无效时自动处理?[在构造函数中这种分配方法还有什么问题吗?])
您正在通过托管代码分配内存。你不用担心。
你不需要使用IDisposable。它们通常与非托管代码一起使用。垃圾收集器会处理你的对象处理。