更改对象列表中的一个元素属性值也会更改所有元素值

I Wayan Ariantha Sentanu

这是我的班级,名称为“ Objek”。

public class Objek
{
    public int id;
    public int tipe;
    public int bentuk;
    public List<int> x { get; set; }
    public List<int> y { get; set; }
    public int xC { get; set; }
    public int yC { get; set; }
    public Color Warna { get; set; }
    public Objek()
    {
        this.Warna = Color.Black;
        this.x = new List<int>();
        this.y = new List<int>();
    }
    public Objek(int tipe, int bentuk)
    {
        this.tipe = tipe;
        this.bentuk = bentuk;

        this.Warna = Color.Black;
        this.x = new List<int>();
        this.y = new List<int>();
    }
}

然后在form1.cs中,我全局声明了此声明(在任何方法之外):

Objek temp = new Objek();

输入“ temp”的值后,将其存储到列表中:

List<Objek> Objek = new List<Objek>();Objek.Add(temp);的问题是每当我改变元素的属性值中的一个(例如:Objek[0].Warna = Color.Red)存储超过1“TEMP”对象,所有后Objek[0, 1, ..., n].Warna也改变为红色。

有人可以解释一下我在这些代码中的错误吗?

FailedUnitTest

听起来您正在将相同的对象引用添加到列表。Objek temp = new Objek();在方法内部移动,以便每次都创建一个新对象,否则,每次调用此方法时,它都在使用/添加相同的对象

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

更改多维数组中的一个元素会更改所有具有值的元素

更改对象中的值会更改另一个对象

更改数组中的一个元素会更改数组中的所有元素

JavaScript:如果另一个对象在另一个属性中具有相同的值,则更改对象的值

jQuery:更改所有<li>列表元素的属性值

从 R 中的 ts() 对象中删除一个值而不更改对象的类

更改列表列表中的所有字符串,但最后一个元素

将值添加到上一个列表中的列表更改元素

根据javascript中的另一个数组更改对象数组的值

为什么修改ArrayList中一个元素的值会更改另一个元素的值?

重复二维列表中的元素,同时更改一个值?

更改对象中的值

返回列表中第一个元素的所有索引,其中后续值递增

python将一个值与列表中的所有元素相加

在函数中返回列表的所有元素而不将 None 作为最后一个值

更改对象数组的每个元素的属性

根据第一个元素数组中的值更改对象数组中的键名

flutter force 为列表中的所有对象设置一个属性值

如何在 JSON 对象中更改对象的属性值

为什么设置一个元素值会更改Python 2d矩阵中另一元素的值

更改所有元素对应于另一个列表索引列表

通过元素和另一个属性值获取 SimpleXML 对象中的属性值

在字典列表中,更改特定元素也会更改所有其他元素

需要基于连续对象属性或对象数组中的属性获取元素,我有一个要搜索的值

更改对象值

更改对象的值

更改对象的值

如何使用另一个对象数组中的一个对象更改对象数组中的对象值?

通过更改某些元素从另一个列表分配值来附加列表python