Derin kopya

Yazar: Lewis Jackson
Yaratılış Tarihi: 8 Mayıs Ayı 2021
Güncelleme Tarihi: 25 Haziran 2024
Anonim
azap derin duygu Kopya
Video: azap derin duygu Kopya

İçerik

Tanım - Derin Kopyalamanın anlamı nedir?

Derin kopya, C # 'da, bir nesnenin kopyasının, hem örnek üyelerin hem de referans üyelerin işaret ettiği nesnelerin kopyalarını içerecek şekilde yaratıldığı bir tekniği ifade eder.

Derin kopya, doğrudan başvurulan öğeleri (değer türünde) ve dolaylı olarak başvurulan öğeleri içeren, bir referans (işaretçi) içeren bir referans türünü içeren bir nesnenin tüm öğelerini kopyalamak yerine veri içeren bir bellek konumuna kopyalamak için tasarlanmıştır. veri kendisi. Derin kopya, orijinal verilere referans olmadan yeni bir kopyanın (klon) oluşturulduğu senaryolarda kullanılır.


Microsoft Azure ve Microsoft Cloud'a Giriş | Bu kılavuz boyunca, bulut bilişimin neyle ilgili olduğunu ve Microsoft Azure'un işinizi buluttan geçirmenize ve yürütmenize nasıl yardımcı olabileceğini öğreneceksiniz.

Techopedia Derin Kopyası anlatıyor

Derin kopya, sığ kopyadan, nesnenin referans türü üyelerinin kopyalanma biçiminden farklıdır. Her iki durumda da değer türü alan üyelerini kopyalarken, alanın bit bit bir kopyası gerçekleştirilir. Referans tipi alanların kopyalanması sırasında, sığ kopya sadece referansın kopyalanmasını içerir, oysa derin kopyada, belirtilen nesnenin yeni bir kopyası gerçekleştirilir.

Derin kopya, AddressInfo değerine sahip bir Çalışan nesnesini, diğer değer türünün üyeleriyle birlikte referans türünün bir üyesi olarak göz önüne alarak bir örnekle gösterilebilir. Çalışanın derin bir kopyası, Çalışan'a eşit değer türünde üyelere sahip ancak yeni bir nesneye gönderme yapan, yeni bir nesne oluşturur.

Derin kopya, aşağıdaki yöntemlerden herhangi biri kullanılarak uygulanabilir:


  • Sınıfın kopya kurucusu, hem değer hem de referans (uygun bellek tahsisinden sonra) türlerinin üyelerini kopyalamak için gerekli mantıkla uygulanabilir. Bu yöntem sıkıcı ve hataya açık.
  • System.Object.MemberwiseClone yöntemi, statik olmayan değer türündeki üyeleri kopyalamak için kullanılabilir.Referans türündeki nesnelerin kopyaları, orijinalleriyle aynı değer grubuyla oluşturulabilir ve atanabilir
  • Derin kopyalanması gereken bir nesne geri yüklenerek seri hale getirilebilir ve seri hale getirilebilir. Bu yöntem otomatikleştirilmiştir ve nesne üyelerindeki değişiklikler için kod değişiklikleri gerektirmez, ancak diğer yöntemlerden daha yavaştır ve klonlanmış nesnenin seri hale getirilebilir olmasını gerektirir
  • Özyinelemeli yansıma sığ bir kopya elde etmek için kullanılabilir, bu noktada derin kopya için gerekli olan ek kod eklenebilir. Bu yöntem otomatikleştirilmiştir ve nesnedeki alanların eklenmesi veya kaldırılması için kod değişikliği gerektirmez. Kısmi güven ortamında daha yavaş ve buna izin verilmiyor
  • Orta dil kodu kullanılabilir, bu daha hızlıdır ancak daha az kod okunabilirliği ve zor bakım ile sonuçlanır

Derin kopya uygulamak için:


  • Nesne iyi tanımlanmış olmalı ve keyfi olamaz
  • Nesnenin özellikleri dikkate alınmayacak
  • Özel durumlar için klonlamanın istihbaratla otomatikleştirilmesi gerekir (yönetilmeyen referanslar içeren nesneler gibi)