-1
私はユーザーが作成するパスの数がわからないので、配列の代わりにGraphicsPathのリストを使用しようとしています。この後List <GraphicsPath>はC#で使用できますか?
List<GraphicsPath> PathDB = new List<GraphicsPath>();
次のように私はリストを埋める:Countプロパティが正しいことながら、私はので、以下のようなオブジェクトを使用することはできません、
using(GraphicsPath myPath = new GraphicsPath())
{
myPath.AddPolygon(myPoints);
PathDB.Add(myPath);
}
をしかし、私はリストからGraphicsPathを使用しようとすると、引数の例外です。
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)
}
}
DisposabeであるGraphicsPathに関連するものはありますか?またはsmtを間違っている?
例外は何を表していますか?そして、はい、オブジェクトは処分されますので、もう使用しないでください。あなたはそれで何を達成しようとしていますか? –
それを使用することはまったく意味がありません。もちろん、そのリストに格納されているものは破棄してはいけません。リストから削除されたときに行わなければなりません。 C#は大混乱を起こさないほどスマートですが、おそらく他の場所でもそうしています。 –
私はそれを取得しません。あなたのループ内で新しいインスタンスを作成し、変数を既存の値で上書きしてから、それを使わずに新しく作成した値を捨てるのはなぜですか?あなたが実際に何を使っているのか(あるいはあなたのコードが何をしているのか)は明確ではないようです。 – Sefe