Допустим, у меня есть этот классПочему копия списка до сих пор изменения свойств в исходном списке, используя C#
public class Employee
{
public string FirstName { get; set; }
public string LastName { get; set; }
public bool isActive { get; set; }
}
И использовать его как это:
List<Employee> Employees = new List<Employee>();
Employees.Add(new Employee { FirstName = "firstname", LastName = "lastname", isActive = true });
List<Employee> EmployeesCopy = new List<Employee>(Employees);
EmployeesCopy[0].isActive = false;
Почему изменения в isActive
собственности от EmployeesCopy
также изменить собственность в первоначальном списке?
Потому что 'Employee' является ссылочным типом (классом). –
Время, чтобы вернуться к книгам, чтобы вы четко понимали разницу между ссылочными и стоимостными типами. Этот sh * t очень важен. Убедитесь, что вы его получили. – spender
может быть, это поможет вам http://www.codeproject.com/Articles/76153/Six-important-NET-concepts-Stack-heap-value-types – 1Mayur