Maison >développement back-end >C++ >Comment effectuer une copie profonde des objets dans .NET?

Comment effectuer une copie profonde des objets dans .NET?

Barbara Streisand
Barbara Streisandoriginal
2025-02-02 13:56:10490parcourir

How Do I Perform a Deep Copy of Objects in .NET?

Masterring Deep Copies in .NET: A Comprehensive Guide

Contrairement à Java, la réalisation d'une véritable copie profonde d'un objet dans .NET nécessite une approche différente. Ce guide décrit des méthodes efficaces pour créer des copies profondes.

Tirer parti de la sérialisation binaire pour le clonage profond

La classe BinaryFormatter fournit une solution robuste pour la copie profonde dans C #. Cette classe de sérialisation convertit un objet en un flux binaire, qui est ensuite désérialisé pour générer une nouvelle instance d'objet indépendant.

Une méthode d'utilité générique simplifie le processus de clonage profond:

<code class="language-csharp">public static T DeepClone<T>(this T obj)
{
    using (var ms = new MemoryStream())
    {
        var formatter = new BinaryFormatter();
        formatter.Serialize(ms, obj);
        ms.Position = 0;
        return (T)formatter.Deserialize(ms);
    }
}</code>

Considérations importantes:

  • La classe cible doit être décorée de l'attribut [Serializable].

  • Assurez-vous que les instructions suivantes sont incluses dans votre fichier source: using

    <code class="language-csharp">using System.Runtime.Serialization.Formatters.Binary;
    using System.IO;</code>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn