IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

[C#] Quelle est la la différence entre Clone et MemberwiseClone ?


Sujet :

C#

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 162
    Points : 545
    Points
    545
    Par défaut [C#] Quelle est la la différence entre Clone et MemberwiseClone ?
    Petite question pour le clonage d'objet pour moi qui vient du monde Java.
    Je ne saisis pas bien la différence entre Clone() et MemberwiseClone() en C#. Toutes les 2 sont des shallow copie comme le clone() de Java.
    J'imagine donc qu'en C#, il faut refédinir la méthode Clone() dans les classes que l'on veut cloner, tout comme en Java.
    Quelqu'un pourrait confirmer ?

    Ensuite, je me suis toujours demandé pourquoi ni en Java, ni en .NET il n'y a de méthodes permettant de deep copy alors que ce serait parfaitement réalisable (exemple, on peut faire du clonage par serialisation).

    Merci pour vos réponses.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Points : 730
    Points
    730
    Par défaut Re: [C#] clonage d'objets
    Citation Envoyé par vandamme
    Je ne saisis pas bien la différence entre Clone() et MemberwiseClone() en C#.
    MemberwiseClone est dispo pour tous les objets, mais en protected et non-virtuelle. shallow-copy-only.
    Clone doit être implémentée 'à la main', en parallèle d'ICloneable, shallow ou en deep selon l'envie.

    Citation Envoyé par vandamme
    Ensuite, je me suis toujours demandé pourquoi ni en Java, ni en .NET il n'y a de méthodes permettant de deep copy alors que ce serait parfaitement réalisable
    La version que j'avais eue je ne sais plus où était simplement que pour faire ce genre de clonage automatiquement, il faudrait passer par la réflexion. Donc pas rapide du tout. Donc c'est laissé entre les mains des développeurs qui peuvent l'implémenter quand ils veulent, de manière bien plus efficace vu qu'ils savent quoi cloner et comment :)

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 162
    Points : 545
    Points
    545
    Par défaut
    Merci beaucoup.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FB1.5]Quelle est la requete la plus rapide ?
    Par Sitting Bull dans le forum SQL
    Réponses: 4
    Dernier message: 10/12/2004, 13h46
  2. Quelle est la différence entre le float et le real ?
    Par Manson dans le forum Débuter
    Réponses: 3
    Dernier message: 10/08/2004, 17h26
  3. execute/perform quelle est la différence?
    Par stago dans le forum Struts 1
    Réponses: 2
    Dernier message: 30/06/2004, 10h51
  4. Quelle est la fiabilité du protocole SSL ?
    Par Anonymous dans le forum Développement
    Réponses: 5
    Dernier message: 05/09/2002, 13h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo