清理方法中的变量

我在我正在处理的大量软件中遇到了一些内存问题,我正在查看我们编写的方法,我们在方法的开头声明变量,但是它们最后没有被清理(无效或处理)方法。

public static bool CheckIsNumber(string x) { int y; return(int.TryParse(x, out y)); } 

正如你在上面看到的那样, y永远不会被设置为null或处理或类似的东西,我一直以为它会被GC拾取,但在查看内存分析器后,我不再那么肯定了。

退出范围的变量和.NET中的垃圾收集之间存在区别。 Microsoft列出了三个将触发垃圾回收的条件:

  1. 系统具有较低的物理内存。
  2. 托管堆上已分配对象使用的内存超过可接受的阈值。
  3. 调用GC.Collect方法。

来源: http : //msdn.microsoft.com/en-us/library/ee787088(v = vs1010).aspx#conditions_for_a_garbage_collection

当我查看我的.NET应用程序的内存使用情况时,它们通常会稳定上升到某个点,之后垃圾收集器会收集并且内存使用量会再次下降。 我能说的最好的就是它的工作方式。