我需要清除 Byte[] 吗?

Do I need to clear Byte[]?

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

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

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

简答:否

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

文件相关 类 通常涉及非托管资源 - 通常是 OS 文件句柄。但是 File.ReadAllBytes(string) 看起来它遵循我的建议“创建、使用、处置。全部在同一段代码中,最好使用 using 语句。”所以我希望它不会有问题。

网络和数据库 类 涉及未管理的资源 - 通常是网络连接。

很多绘图相关 类 使用非托管资源 - 主要是一些非托管内存以提高性能。

但这只是一个字节[]。与任何 int[] 一样管理。请注意,无论如何您都没有选择,因为 byte nor array 都没有实现 IDisposeable。如果你试图处理它,编译器会想知道你在说什么,因为没有这样的功能。