使用FontFamily和SystemFonts的静态成员的正确方法是什么?

时间:2012-12-28 19:07:59

标签: c# .net

我正在尝试设置TextBox的字体,例如System.Drawing.FontFamily.GenericMonospaceSystem.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);
    }
}

是否必须首先将这些类的静态成员的所有用法分配给自身处置的局部变量?如果是这样的话?

0 个答案:

没有答案