在.NET中,我们可以通过哪些方式获得内存泄漏?
我知道两个:
例:
// Causes Leaks
Label label = new Label();
this.Controls.Add(label);
this.Controls.Remove(label);
// Correct Code
Label label = new Label();
this.Controls.Add(label);
this.Controls.Remove(label);
label.Dispose();
Run Code Online (Sandbox Code Playgroud)
更新:想法是列出不太明显的常见陷阱(如上所述).通常的想法是,由于垃圾收集器,内存泄漏不是一个大问题.不像以前那样在C++中.
很棒的讨论人员,但让我澄清......根据定义,如果.NET中的对象没有任何引用,它将在某个时间收集垃圾.所以这不是一种诱发内存泄漏的方法.
在托管环境中,如果你有一个你不知道的任何对象的意外引用,我认为它是一个内存泄漏(因此我的问题中的两个例子).
那么,这种内存泄漏可能发生的各种可能方式是什么?
对于.net开发人员来说,进入移动开发的学习曲线是什么?
有多少不同的操作系统运行.net?
Windows mobile是否与windows ce相同?
我知道这是一个广泛的话题,但我对.NET的所谓最佳实践感兴趣,尽管我正在寻找不那么明显的主题,不像"用作代替转换".
让我们看看我可以从Stack Overflow用户那里学到什么有趣的东西.