我应该处置 GDI+对象在创建之前?
我应该在创建 GDI+ 对象之前对其进行处理吗?
建议在使用 GDI+ 对象后始终将其释放。
例如
Pen p = new Pen(Color.Green);
// use 'p'
p.Dispose();
现在,如果我遇到这种情况:
Pen p = new Pen(Color.Green);
// use green 'p'
p = new Pen(Color.Red); // Should I Dispose my 'p' first?
// use red 'p'
p.Dispose();
编辑 A:
不可能每次都使用“USING”。
private Pen p;
public RefreshPen(style)
{
// p.Dispose(); +-
p = new Pen(style.Color);
// etc.
}
编辑B:
这样可以吗?
using (Pen p = new Pen(Color.Green))
{
// use green 'p'
p = new Pen(Color.Red); // Should I Dispose my 'p' first?
// use red 'p'
p = new Pen(Color.Blue); // Should I Dispose my 'p' first?
// use blue 'p'
}
Should I dispose GDI+ object before its creation?
Is recommended to always Dispose GDI+ object after using it.
by e.g.
Pen p = new Pen(Color.Green);
// use 'p'
p.Dispose();
now, if I have this situation:
Pen p = new Pen(Color.Green);
// use green 'p'
p = new Pen(Color.Red); // Should I Dispose my 'p' first?
// use red 'p'
p.Dispose();
EDIT A:
Using 'USING' is not possible every time.
private Pen p;
public RefreshPen(style)
{
// p.Dispose(); +-
p = new Pen(style.Color);
// etc.
}
EDIT B:
Will this be OK?
using (Pen p = new Pen(Color.Green))
{
// use green 'p'
p = new Pen(Color.Red); // Should I Dispose my 'p' first?
// use red 'p'
p = new Pen(Color.Blue); // Should I Dispose my 'p' first?
// use blue 'p'
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
是的,你应该。 (另请注意,
using
语句在这里提供了巨大的帮助。我非常很少显式调用 .Dispose。using
会处理这个问题。)Yes, you should. (Also note that the
using
statement is a tremendous help here. I very rarely call .Dispose explicitly.using
takes care of that.)是的。您正在创建一个新对象并将其分配给 p,这意味着您应该处置旧对象。
我可能会这样编码:
这可以防止您忘记丢弃笔或使用已丢弃的对象。
Yes. You are creating a new object and assigning it to p, which means you should dispose the old object.
I might code it like so:
This prevents you from forgetting to dispose the pen, or using a disposed object.
不能只改变对象的属性吗?
Can't you just change the properties of the object?