我知道Font
类实现IDisposable接口,应该显式处理或使用using
子句
我有一个类,我希望它有一个Font属性
class Test
{
Font Font {set; get;}
public Test()
{
Font = new Font("Arial", 16, FontStyle.Bold);
}
}
我担心在删除类的对象时,在我应该实例化和处理它的时间和地点处理它?</ p>
答案 0 :(得分:1)
在封装应该处理的对象时,通常建议使用IDisposable
模式:
class Test : IDisposable
{
public Font Font { get; set; }
public Test()
{
Font = new Font("Arial", 16, FontStyle.Bold);
}
public void Dispose()
{
Dispose(true);
}
protected virtual void Dispose(bool disposing)
{
if (disposing)
{
Font.Dispose();
}
}
}
这样,您就可以在班级中使用Font
班级,并且只有在使用Test
班级后才能处理它:
using (Test test = new Test())
{
// Do stuff with test.
}
答案 1 :(得分:-1)
class Test
{
Font Font {set; get;}
public Test()
{
using (var font = new Font("Arial", 16, FontStyle.Bold))
{
// do something with font here
} // font is automatically disposed when going out of scope
}
}
使用语句的重点在于在本地执行某些操作而无需显式处理对象。
因此,它并不适用于您的情况,您希望以某种方式使用&#39;使用&#39;运算符在Test类的所有成员函数中