我正在尝试设置使用的字体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);
}
}
是否必须首先将这些类的静态成员的所有使用分配给自己处置的局部变量?如果是,为什么?