begin process at 2010 02 10 09:22:12
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Astuces

 > EXEMPLE DE CLONAGE D'UNE CLASSE DÉRIVÉE DE TREENODE

EXEMPLE DE CLONAGE D'UNE CLASSE DÉRIVÉE DE TREENODE


 Information sur la source

Note :
Aucune note
Catégorie :Astuces Source .NET ( DotNet ) Classé sous :class, héritage, clone, dérivé, treenode Niveau :Débutant Date de création :17/05/2005 Vu / téléchargé :11 458 / 330

Auteur : Crazyht

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note


 Description

Suite à une question dans le forum voici un petit exemple de code qui derive la methode Clone d'un TreeNode pour cloner les proprietes supplementaires...


 Conclusion

Les sources du Zip sont en C# 2 mais le code peut tout de meme etre copier en C# 1 / 1.1

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source .NET (Dotnet) BRIQUE DE LOG
Source avec Zip Source .NET (Dotnet) ACCÉS A DES PARTAGES RÉSEAUX AVEC UN LOGIN/PWD
Source avec Zip Source .NET (Dotnet) DPAPI : PROTECTION DES DONNÉES PAR UTILISATEUR OU MACHINE
Source avec Zip Source .NET (Dotnet) IPBOX : SAISIE D'ADRESSE IP
Source avec Zip Source .NET (Dotnet) FONTCOMBOBOX : COMBO DE SELECTION DE LA FONT

 Sources de la même categorie

Source avec une capture Source .NET (Dotnet) AJOUTER DES BYTES À UN EXECUTABLE par t0fx
Source .NET (Dotnet) COPIER/ COLLER DATAGRID (COPY/PASTE) par jamesbidon
Source avec Zip Source .NET (Dotnet) MECANISME DE SYNCHRONISATION DE THREAD - MONITOR, MUTEX, SEM... par jesusonline
Source .NET (Dotnet) EVENTHANDLERS GÉNÉRIQUES par ricklekebekoi
Source avec Zip Source .NET (Dotnet) TRAITER UN FOREACH EN PARALLÈLE par maitredede

 Sources en rapport avec celle ci

Source .NET (Dotnet) [ACTIVEDIRECTORY] DÉTERMINE SI L'UTILISATEUR USERNAME EST ME... par Francks11
Source avec Zip Source .NET (Dotnet) PROPRIÉTÉS D'EXTENSION AVEC C# 3.0 par mathmax
Source .NET (Dotnet) XML VERS TREENODE / TREENODE VERS XML par ip2x
Source avec Zip Source .NET (Dotnet) TEXTBOX MONÉTAIRE par GG29
Source avec Zip Source avec une capture Source .NET (Dotnet) EXTENDPANEL : UN PANEL ORIGINAL ET STYLISÉ par wizad

Commentaires et avis

Commentaire de benpolice le 07/02/2008 15:25:09

dans votre code vous faites un
public override object Clone()
        {
            MyTreeNode node = (MyTreeNode)base.Clone();
            node.m_MaPropriete = this.m_MaPropriete;
            return node;
        }

j'ai réutilisé cette technique en prenant comme classe mère la classe A, et puis je définis une classe B qui hérite de A. Je me retrouve dans la même situation que vous, c'est à dire que ma classe A = TreeNode, et ma classe B = MyTreeNode.

Je travaille avec C#, pas c#2, et la ligne
MyTreeNode node = (MyTreeNode)base.Clone(); est incorrecte, car, le base.Clone() retourne une instance de la classe TreeNode, et ne peut être transtypée en objet de la classe MyTreeNode, cela constitue une erreur.

Ce qui est logique, car le base.Clone() retourne effectivement un objet de type Treenode, il est impossible de le considérer ensuite comme un objet de type MyTreeNode. L'inverse est par contre possible, car un MyTreeNode est un TreeNode, mais un TreeNode n'est pas un MyTreeNode.

on obtient à l'exécution une erreur du type "invalid cast".
Comment expliquez vous cela?

Extreme Programmer. (benpolice@hotmail.com)

Commentaire de Crazyht le 07/02/2008 17:31:37 administrateur CS

Alors la comme ca tres franchement je vois pas, personnelemnt je passes plus facilement par une serialisation Binaire puis une deserialisation pour faire des clones.

Votre explication semble plus que logique en effet, si je trouve 2 minutes à l'occasion, je regarderais...

Commentaire de GW74372 le 27/07/2009 16:41:18

Bonjour,
j'avoue être surpris du peu de renseignement sur le sujet
Mais voici l'astuce que j'ai trouvé dans ce cas:

public override object Clone()
        {
            MyTreeNode node = new MyTreeNode();
           ((TreeNode)node)=base.Clone();
            node.m_MaPropriete = this.m_MaPropriete;
            return node;
        }

En fait, j'étais tombé sur ce probleme en VB.Net et j'ai du le résoudre de la même manière.
Si quelqu'un d'autre à une meilleur idée, je suis vivement intéresser.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Overwrite de la méthode Clone() [ par Globinours ] Voil&#224; mon probl&#232;me est simple je veux cloner des TreeNode mais ensuite le cast&#233; dans un type d&#233;rivant de TreeNode qui contient seu bordel d'héritage [ par reyman ] Rien de mieux qu'un exemple pour se faire comprendre :namespace A{ public class a1 { a2 objet; // ma propriété a1() Héritage et compilation [ par angeltears ] Bonjour, Je viens de me mettre au c# depuis peu..et là je suis occupé à tester l'héritage. Alors voilà, pour faire simple, je me demande comment c Héritage de class entre Forms [ par coucoual ] Bonjour a tous ! Voila j'ai juste un petit soucis dans mon héritage de class entre deux forms. Voila ce que ca me fait : http://www.casimages.com/im Problème d'héritage et de type de retour [ par LTourist ] Plop,Alors j'expose rapidement mon problème et le plus simplement possible :)public abstract class A{public C plop();}public class B:A{public override héritage de classe [ par brico07 ] Bonjour,j'implémente dans mon projet une classe et je veux qu'elle hérite de deux Classes (class Rectangle et class Eventmouse), mais comment faire? j Héritage [ par medbabs ] Bonjour J'ai une méthode qui est déclarée protected dans une classe, mais le pb c'est quand je cree une instance de cette  classe dans le fichier <f XML Sérialisation + héritage + dictionary [ par sidommou ] Salut,J'ai besoin d'un peu d'aide pour la sérialisation XML. J'ai une classe école qui contient un objet dictionary de personne. une personne peut êtr Conversion object vers class [ par Sillymind ] Bonjour,Je débute en C# alors SVP soyez indulgeant.J'aimerai savoir s'il est possible de créer une variable de classe qui pourrait pointer sur n'impor Sauvegarde en memoire d'un Bitmap [ par moimadmax ] Je travail sur un projet qui fait une trace (en marquant un point toute les 15s) sur un plan en utilisant la position GPS. Je voudrai aussi pouvoir vi


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,406 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales