C# 怎样管理 方法中变量的内存回收

先回答你的问题。方法中的变量如果是值类型,在方法执行完会被自动释放,因为是在栈上分配的空间。但是方法中声明的引用类型,比如你所举例子中的List,是在堆上分配的,只能在gc中回收,方法执行后不会被立即回收。理论上你的做法会减少gc对效率的影响,但是这些细微的影响真的对你的程序那么重要吗?定义成成员变量会使程序难以维护,导致多线程问题,整体内存占用增大却久久不能释放。你需要全面仔细的profile你的程序,让你有充分的理由这么做。
■网友
如果你在乎gc的开销,那为什么要用c#?然后是正题:值类型的生命周期是到花括号结束。引用类型的生命周期是不确定值。确切来说是引用计数为0以后的下一次gc循环
■网友
How To: Use CLR ProfilerProfiling the .NET Garbage-Collected Heap


    推荐阅读