現象:將陣列座標傳給 DrawLine,後修改陣列值,畫面自動更新為新座標的線條。
陣列是引用型別。DrawLine 內部持有該陣列的**同一引用**,修改陣列內容等同於修改繪圖邏輯讀取的資料來源。
int[] original = { x1, y1, x2, y2 };
int[] copy = (int[])original.Clone(); // 或 new int[]{x1,y1,x2,y2}
g.DrawLine(pen, copy[0], copy[1], copy[2], copy[3]);
// 之後修改 original 不影響已繪製內容
struct)為實值型別,傳遞即複製,不會有此問題。Clone() / ToArray() / new T[] 斷開關聯。理解「引用共享 vs 實值複製」是 C# 避免副作用的核心功力。