小编use*_*149的帖子

为什么即使我没有使用引用,我的类型List <Point>的变量也会被更改?

我有一个叫做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)

.net c#

1
推荐指数
1
解决办法
271
查看次数

标签 统计

.net ×1

c# ×1