私のクラスには2つのポイントリストがあります。 1つは最初にロードされた値、2つ目は変更された値です。私はクラス内で2つの別々のリストを作成していますが、change_pointsメソッドで変更しようとしているときにstart_pntsリストも値を変更します。私は何が間違っているのか分かりません。私はこの単純な問題の助けを借りて感謝します。あなたは一つのオブジェクトを変更した場合、それは、同一の参照を保持しているため、あなたが実際にあまりにも他を変更しているので、独立したリストを作る
class Polygon : Shape
{
private List<Point> points = new List<Point>();
private List<Point> start_pnts = new List<Point>();
public override void add_point(Point pnt)
{
start_pnts.Add(pnt);
points.Add(pnt);
}
public override void change_points(double x, double y)
{
for (int i = 0; i < points.Count; i++)
{
points[i].x = start_pnts[i].x + x;
points[i].y = start_pnts[i].y + y;
}
}
}
あなたは100%正しいです、私はリストに焦点を当て、私がそれに追加しているものではありません...あなたの答えをありがとう。 – KamCho
あなたは歓迎仲間:) –