我正在学习 C#。据我所知,您必须正确设置才能让垃圾收集器真正删除应有的所有内容。我正在寻找多年来从你那里学到的智慧,聪明人。
我有 C++ 背景,非常习惯代码味道和开发模式。我想了解 C# 中的代码味道是什么样的。给我建议!
删除内容的最佳方法是什么?
你怎么知道什么时候有“内存泄漏”?
编辑:我正在尝试开发一个“内存管理要始终做的事情”的 list
非常感谢。
最佳答案
C#,.NET Framework 使用托管内存,所有内容(但分配的非托管资源)都被垃圾收集。
可以安全地假设托管类型总是被垃圾收集。这包括数组
、类
和结构
。随意执行 int[] stuff = new int[32];
并忘记它。
如果您在类中打开文件、数据库连接或任何其他非托管资源,请实现 IDisposable 接口(interface)并在您的 Dispose 方法中取消分配非托管资源。
任何实现 IDisposable 的类都应该显式关闭,或者在(我认为很酷的)Using block 中使用;
using (StreamReader reader = new StreamReader("myfile.txt"))
{
... your code here
}
此处 .NET 将在超出 {} 范围时处理 reader。
关于c# - 解决C#内存泄漏的方法有哪些,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/690071/