C# 多笔对象#

C# 多笔对象#,c#,object,draw,pen,C#,Object,Draw,Pen,我有一个表格,我用钢笔画了一些线 我想知道是应该使用一支共享对象笔,还是每画一条线使用一支对象笔 最好使用:(所有线共享一个对象) 或以下内容:(每行都是一个对象) 事实上,这两个例子都符合我的要求,但我想知道在这种情况下最推荐的是什么 注意:我使用的是C#(WinForms)看看这个: 这似乎在这里得到了完美的解释 简而言之,这一条似乎更好: Pen green = new Pen(Color,size); foreach(line to be drawn) graphics.Draw

我有一个表格,我用钢笔画了一些线

我想知道是应该使用一支共享对象笔,还是每画一条线使用一支对象笔

最好使用:(所有线共享一个对象)

或以下内容:(每行都是一个对象)

事实上,这两个例子都符合我的要求,但我想知道在这种情况下最推荐的是什么

注意:我使用的是C#(WinForms)

看看这个: 这似乎在这里得到了完美的解释

简而言之,这一条似乎更好:

Pen green = new Pen(Color,size);

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

green.Dispose();
如果我是你

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

编译器/jitter应该为您优化它,但由于Pen是一个win32非托管资源,我建议使用一个实例,并在其周围使用
子句。这似乎是一个不错的选择。根据msdn的
using
语句“using语句获取一个或多个资源,执行一个语句,然后处置该资源。”谢谢。
Pen green = new Pen(Color,size);

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

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