[英]Adding elements to a list of class
I have defined motorData class as below: 我已经定义了motorData类,如下所示:
public class motorData
{
public int data0 { get; set; }
public int data1 { get; set; }
public int data2 { get; set; }
public int data3 { get; set; }
public int data4 { get; set; }
public int data5 { get; set; }
public int data6 { get; set; }
public int data7 { get; set; }
public int data8 { get; set; }
}
The class is used in a Button
click event like this: 此类在
Button
单击事件中使用,如下所示:
List<motorData> mtdlist = new List<motorData>();
motorData mtd = new motorData();
private void button2_Click_1(object sender, EventArgs e)
{
mtd.data0 = 1;
mtdlist.Add(mtd);
mtd.data0 = 2;
mtdlist.Add(mtd);
mtd.data0 = 3;
mtdlist.Add(mtd);
mtd.data0 = 4;
mtdlist.Add(mtd);
mtd.data0 = 5;
mtdlist.Add(mtd);
}
After calling the event, I get the following results: 调用事件后,我得到以下结果:
mtdlist[0].data0 = 5;
mtdlist[1].data0 = 5;
mtdlist[2].data0 = 5;
mtdlist[3].data0 = 5;
mtdlist[4].data0 = 5;
If I define motorData as structure, I get the correct results. 如果将motorData定义为结构,则会得到正确的结果。 So what am I missing?
那我想念什么呢?
You are assigning the value to the same Object ,You should create new Object each time. 您正在将值分配给相同的对象,您应该每次创建新的对象。
List<motorData> mtdlist = new List<motorData>();
private void button2_Click_1(object sender, EventArgs e)
{
motorData mtd1 = new motorData();
mtd1.data0 = 1;
mtdlist.Add(mtd1);
motorData mtd2 = new motorData();
mtd2.data0 = 2;
mtdlist.Add(mtd2);
motorData mtd3 = new motorData();
mtd3.data0 = 3;
mtdlist.Add(mtd3);
motorData mtd4 = new motorData();
mtd4.data0 = 4;
motorData mt5 = new motorData();
mtdlist.Add(mtd4);
mtd5.data0 = 5;
mtdlist.Add(mtd5);
}
To know more about Structure vs Class
要了解有关
Structure vs Class
更多信息
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.