我正在尝试设置TextBox
的字体,例如System.Drawing.FontFamily.GenericMonospace
和System.Drawing.SystemFonts.IconTitleFont.SizeInPoints
。
当我使用以下代码时:
_TBTextBox.Font = new Font(System.Drawing.FontFamily.GenericMonospace, System.Drawing.SystemFonts.IconTitleFont.SizeInPoints);
.Net Memory Profiler通知我System.Drawing.Font
的实例和System.Drawing.FontFamily
的实例都被垃圾收集而没有被处理掉。
包装using
块中的字体集消除了处理问题,但似乎效率低下,并且它应该是不必要的。
// No garbage-collection-without-disposal issues
using (Font iconTitleFont = System.Drawing.SystemFonts.IconTitleFont)
{
using (FontFamily family = System.Drawing.FontFamily.GenericMonospace)
{
_TBTextBox.Font = new Font(family, iconTitleFont.SizeInPoints);
}
}
是否必须首先将这些类的静态成员的所有用法分配给自身处置的局部变量?如果是这样的话?