Phương thức MemberwiseClone() dùng để làm gì?

{{FormatNumbertoThousand(model.total_like)}} lượt thích
201 lượt xem
C#/.Net master

Phương thức MemberwiseClone() tạo một shadow copy bằng cách tạo một đối tượng mới, sau đó sao chép các thuộc tính non-static của đối tượng hiện tại sang đối tượng mới.

  • Nếu thuộc tính là một kiểu giá trị, một bản sao từng bit của thuộc tính đó sẽ được thực hiện.
  • Nếu thuộc tính là kiểu tham chiếu, thì tham chiếu được sao chép nhưng đối tượng được tham chiếu thì không; do đó, đối tượng gốc và bản sao của nó tham chiếu đến cùng một đối tượng.
public class Person
{
   public int Age;
   public string Name;
   public IdInfo IdInfo;

   public Person ShallowCopy()
   {
      return (Person)this.MemberwiseClone();
   } 
   
   public Person DeepCopy()
   {
      Person other = (Person)this.MemberwiseClone();
      other.IdInfo = new IdInfo(IdInfo.IdNumber);
      other.Name = String.Copy(Name);
      return other;
   }
}
{{login.error}}