我有一个叫做temp类型的变量List<Point>.出于某种原因,当我打电话时sanitize(temp),变量temp似乎发生了变化.我知道变量会temp发生变化,因为C:\out.bmp如果我包含该sanitize(temp)行,我输出的输出会有所不同.我从消息框得到的输出是"临时没有改变".
List<Point> original = temp;
sanitize(temp);
if (temp.Equals(original)) {
MessageBox.Show(@"temp was not changed.");
} else {
MessageBox.Show(@"temp was changed.");
}
outputPointsOnBitmap(temp.ToArray(), ref windowBitmap, Color.Yellow);
windowBitmap.Save("C:\\out.bmp");
Run Code Online (Sandbox Code Playgroud)
对于好奇,这里有更多的源代码:
private void outputPointsOnBitmap(Point[] points, ref Bitmap bitmap, Color markerColor) {
foreach (Point point in points) {
bitmap.SetPixel(point.X, point.Y, markerColor);
}
}
private List<Point> sanitize(List<Point> crossPoints) {
SortedSet<int> indexesToDelete = new SortedSet<int>();
for (int i = 0; i < crossPoints.Count() - …Run Code Online (Sandbox Code Playgroud)