19/10/2019, 10:36

Cách clone một object

Clone một object từ object ban đầu vì không muốn thao tác trên object hiện tại, vì thao tác trên đấy dữ liệu của object hiện tại bị thay đổi. Chúng ta clone một object ban đầu ra một object mới, sau đó thao tác trên object được clone. Giả sử bạn có một class tên Employee: có nhiều properties như ...

Clone một object từ object ban đầu vì không muốn thao tác trên object hiện tại, vì thao tác trên đấy dữ liệu của object hiện tại bị thay đổi. Chúng ta clone một object ban đầu ra một object mới, sau đó thao tác trên object được clone.

Giả sử bạn có một class tên Employee: có nhiều properties như là: Name, Birthday, …

public Employee
{
    public string Name {get; set;}
    public DateTime? Birthday {get; set;}
    ...
}

Sau đó bạn tạo một constructor cho class Employee and copy từng properties của nó:

public Employee
{
    public string Name {get; set;}
    public DateTime? Birthday{get; set;}
    ...
    public Employee(Employee obj) 
    {
        Name = obj.Name;
        Birthday= obj.Birthday;
        ...
    }
}

Giờ bạn có thể thực hiện việc copy như sau:

List<Employee> clonedEmployees = originalEmployees.ConvertAll(x => new Employee(x));

Giờ thì bạn đã có một danh sách được clone và hoàn toàn độc lập với danh sách ban đầu.

GKN chúc các bạn thành công :)


0