我应该处置 GDI+对象在创建之前?

发布于 2024-08-25 03:14:42 字数 828 浏览 4 评论 0原文

我应该在创建 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

把梦留给海 2024-09-01 03:14:42

是的,你应该。 (另请注意,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.)

浮萍、无处依 2024-09-01 03:14:42

是的。您正在创建一个新对象并将其分配给 p,这意味着您应该处置旧对象。

我可能会这样编码:

using(Pen p = new Pen(Color.Green))
{
    //do some stuff
}

using(Pen q = new Pen(Color.Red))
{
    //do some other stuff
}

这可以防止您忘记丢弃笔或使用已丢弃的对象。

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:

using(Pen p = new Pen(Color.Green))
{
    //do some stuff
}

using(Pen q = new Pen(Color.Red))
{
    //do some other stuff
}

This prevents you from forgetting to dispose the pen, or using a disposed object.

長街聽風 2024-09-01 03:14:42

不能只改变对象的属性吗?

Pen p = new Pen(Color.Green);
//use it here.
p.Color = Color.Red;
//use it some more.
p.Dispose();

Can't you just change the properties of the object?

Pen p = new Pen(Color.Green);
//use it here.
p.Color = Color.Red;
//use it some more.
p.Dispose();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文