【发布时间】:2026-02-16 08:10:01
【问题描述】:
MSDN 建议在释放最后一个引用之前释放 System.Drawing.Brush 类型的任何变量。否则,在垃圾收集器调用 Brush 对象的 Finalize 方法之前,它正在使用的资源不会被释放。
众所周知,当控制流超出其所属方法的范围时,局部变量会自动销毁。那么,如果是局部的,是否需要每次都设置一个画笔对象呢?
【问题讨论】:
-
是的,这是必要的。这就是 GC 的工作原理。
-
As we know, local variables are destroyed automatically when the control flow goes out of the scope- 这是一种误解。 什么都没有在 C# 中发生,这是您的变量超出范围的直接后果。例如在 C++ 中,在这种情况下会调用 析构函数,但在 C# 中,只有IDisposable与using语句结合才能达到类似的效果。
标签: c# .net vb.net winforms visual-studio