是否需要清除Byte[]?



在我的游戏中,用户可以从图库中选择多个图像并将它们加载到游戏中。我创建了一个从filepath获取图像的函数。在这个函数中,我声明了局部变量byte[]。所以在读取文件后,我需要将字节[]释放到释放的内存中。下面是我的代码:

if (File.Exists(filePath)) 
{
byte[] fileData = File.ReadAllBytes(filePath);
Texture2D tex = new Texture2D(2, 2);
tex.LoadImage(fileData);
}

从byte[] ????加载纹理后,我需要清除byte[]吗用户可以从图库中选择任何图像文件,因此没有文件大小限制。

简短回答:否

byte[]为被管理资源。它将被GC完全清理。

与文件相关的类通常涉及非托管资源——通常是操作系统文件句柄。但是File.ReadAllBytes(string)看起来遵循了我的建议"创建,使用,处置。在同一段代码中,最好使用using语句。"所以我希望它不会产生问题。

网络和数据库类涉及未被修改的资源——通常是网络连接。

许多与绘图相关的类使用非托管资源——主要是一些非托管内存来提高性能。

但这只是一个字节[]。像任何int[]一样管理。请注意,无论如何您都没有选择,因为字节和数组都没有实现idisposable。如果你试图处理它,编译器会怀疑你在说什么,因为没有这样的函数。

最新更新