是列表 可能在C#?

问题描述 投票:-1回答:1

我正在尝试使用GraphicsPath列表而不是数组,因为我不知道用户将创建的路径数。

List<GraphicsPath> PathDB = new List<GraphicsPath>();

在此之后,我填写列表如下:

using(GraphicsPath myPath = new GraphicsPath())
{
   myPath.AddPolygon(myPoints);
   PathDB.Add(myPath);
}

但是当我尝试使用列表中的GraphicsPath时,虽然Count属性是正确的,但由于参数异常,我无法使用下面的对象。

num = PathDB.Count;
for(int k=0; k < num; k++)
   {
      using(GraphicsPath myCurrentPath = new GraphicsPath())
      {
         myCurrentPath = PathDB[k];
         myCurrentPath.AddLine(0,0,400,400); //at this stage exception is thrown 
         myGraphics.DrawPath(myPen, myCurrentPath)
      }
   }

它与GraphicsPath有关吗?是Disposabe ??或者做smt错了?

c# list generics drawing2d graphicspath
1个回答
3
投票
using(GraphicsPath myPath = new GraphicsPath())
{
   myPath.AddPolygon(myPoints);
   PathDB.Add(myPath);
} // this disposes myPath

这是一个本地图形路径。你的using阻止Disposes它在范围之后如果完成。所以你需要删除那个using块,而不是在你不再需要它时处理你的路径。

© www.soinside.com 2019 - 2024. All rights reserved.