简体   繁体   English

多个Pen对象C#

[英]Multiple Pen objects C#

I have a form in which i draw some lines using the Pen object. 我有一种使用Pen对象绘制线条的形式。

I'm wondering if i should use one shared object Pen, or one object Pen per line drawn. 我想知道是否应该使用一个共享对象的Pen或每绘制一条线使用一个对象的Pen。

Is is better to use: (one object shared by all lines) 最好使用:(所有行共享一个对象)

Pen green;
green = new Pen(Color,size);
foreach(line to be drawn)
   graphics.DrawLine(green, x1, y1, x2, y2);

Or the following: (each line is an object) 或以下内容:(每行都是一个对象)

foreach(line to be drawn)
   Pen green = new Pen(Color.Green, 3);
   graphics.DrawLine(green, x1, y1, x2, y2);
   green.Dispose();

In fact, both examples do what I want, but i'm wondering what is most recommended in this case. 实际上,两个示例都可以满足我的要求,但是我想知道在这种情况下最推荐的是什么。

Note: I'm using C# (WinForms) 注意:我正在使用C#(WinForms)

If I were you 如果我是你

using (var green = new Pen(Color,size)
{
    foreach(line to be drawn)
    {
        graphics.DrawLine(green, x1, y1, x2, y2);
    }
}

Take a look at this one: What happens if I don't call Dispose on the pen object? 看看这一点: 如果我不对笔对象调用Dispose,会发生什么? It seems to be perfectly explained here ... 这似乎在这里得到了完美的解释...

To keep it short, this one seems to be better : 为了简短起见,这似乎更好:

Pen green = new Pen(Color,size);

foreach(line to be drawn)
   graphics.DrawLine(green, x1, y1, x2, y2);

green.Dispose();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM