0

に2つ追加しようとしCanvasましたList<Canvas>が、次のコードから例外が発生します。

List<Canvas> cvList = new List<Canvas>();

Canvas cv = new Canvas();
cv.Width = 100; 
cv.Height = 100;

cvList.Add(cv); // adding first Canvas to List<Canvas>
cvList.Add(cv); // adding the second Canvas to List<Canvas>
...

この問題についてさらに詳しく説明するには、それぞれCanvasが異なる可能性があるため、それぞれが異なる必要がありTextBoxますUIElement。したがって、上記のコードは機能しないはずです。しかし、私はこれを行うことはできませんが:

Canvas cv1 = new Canvas();
cv1.Width = 100;
Canvas cv2 = new Canvas();
cv2.Width = 250;
...

Or 

Canvas[] cv = new Canvas[myInt];

リストのサイズは実行時に決定され、配列にサイズを割り当てたり、各配列を個別に宣言したりすることができないため、上記を行うことはできません。

これを正しく行う方法は?はい、MSDNのリストを読みましたが、サイトからその方法がわかりませんでした。ありがとう。

4

2 に答える 2

1

同じキャンバスをリストに追加しています。リストに2つの異なるキャンバスが必要な場合は、2つのキャンバスを作成する必要があります。これは同じ変数で実行できることに注意してください。リストに追加する間に、必ずnew演算子を再度使用してください。

于 2011-04-04T01:50:06.763 に答える
1

Joelsの答えを詳しく説明するには、次のことを行う必要があります。

List<Canvas> cvList = new List<Canvas>();

Canvas canvas1 = new Canvas();
canvas1.Width = 100; 
canvas1.Height = 100;
cvList.Add(canvas1);

Canvas canvas2 = new Canvas();
canvas2.Width = 100; 
canvas2.Height = 100;
cvList.Add(canvas2);

この方法で同じ要素を同じList<Canvas>コレクションに2回追加することは完全に合法ですが、レイアウトで同じ要素を2回使用しようとすることは(このリストの使用方法によっては発生する可能性があります)、そうではないことに注意してください。

于 2011-04-04T01:54:22.150 に答える