这是必须引用开放类的列表。将新对象添加到列表中时,以前添加的所有对象都将被覆盖
readonly List<object> openedClasses = new List<object>();
这里是我创建类并添加列表的地方。
var employees = myWs.ReturnListEmployee(guid);
foreach (Api.EmployeeData employee in employees)
{
openedClasses.Add(new MyClass(pendingSchedules[0], employee));
}
我的阶级和它的构造:
class MyClass
{
public Schedule schedule;
public MyClass(Schedule schedule, Api.EmployeeData employee)
{
// the "schedule.EmployeeData" it is constantly changed
this.schedule = schedule;
this.schedule.EmployeeData = employee;
}
}
我的问题是:每个foreach循环的所有值以前添加到列表由最近添加类覆盖。
我试过了我在互联网上找到的所有解决方案并做了检查,该类不是静态的,而且我移除了每个被调用的静态方法和静态字段(只是为了确保),列表I已经创建,并且没有只读作为“对象”列表和“MyClass”列表。
有了:
openedClasses.Add(new MyClass(pendingSchedules[0], employee));
而且具有:
var myClass = new MyClass(pendingSchedules[0], employee);
openedClasses.Add(myClass);
所有'MyClass'实例引用相同的'Schedule'对象,所以每次有人将其'EmployeeData'财产,所有其他实例也受到影响 –