begin process at 2010 02 10 12:20:59
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Windows

 > 

Autre

 > 

Unable to cast / cannot convert type


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Unable to cast / cannot convert type

mardi 1 avril 2008 à 12:32:24 | Unable to cast / cannot convert type

Philipina

Bonjour,

J'ai un petit problème de casting d'objet.
Dans mon code j'ai 2 definitions d'object ayant la même format.
Les objects aaa et bbb
-------------------------------------
       public partial class aaa
        {

            private string nom;

            private string prenom;

            //GET AND SET
            public string lenom
            {
                get
                {
                    return this.nom;
                }
                set
                {
                    this.nom = value;

                }
            }
            public string leprenom
            {
                get
                {
                    return this.prenom;
                }
                set
                {
                    this.prenom = value;
              
                }  
           
            }
       
        }

        public partial class bbb
        {

            private string nom;

            private string prenom;

            //GET AND SET
            public string lenom
            {
                get
                {
                    return this.nom;
                }
                set
                {
                    this.nom = value;

                }
            }
            public string leprenom
            {
                get
                {
                    return this.prenom;
                }
                set
                {
                    this.prenom = value;

                }

            }

        }
--------------------------------

Je voudrais remplir un object de type aaa et le copier (via un casting) dans un object de type bbb avec le code suivant:
-----------------------------
            aaa testA = new aaa();
            bbb testB = new bbb();

            testA.lenom = "Brika";
            testA.leprenom = "Remi";

            testB = (bbb)testA;
---------------------------

Avec ce code j'obtiens l'erreur "cannot convert type 'aaa' to 'bbb' "
Mes objects réels dans mon code son beaucoup plus grand c'est pourquoi je voudrais éviter de copier tous les parametres 1 par 1 d'un object à un autre.

Pouvez-vous me dire comment serait-il possible de résoudre ce problème?

Merci d'avance pour votre aide.

Alain
-----------------------------



Remi

mardi 1 avril 2008 à 14:06:25 | Re : Unable to cast / cannot convert type

xmox667

Membre Club
Salut,
J'ai une question, pourquoi dans ton code réel tu as des classes dont le contenu est identique mais dont le nom est différent.
Dans ton exemple si la class bbb hérite de la class aaa celà fonctionne.

public class bbb : aaa
{
}

aaa a = new aaa();
a.lenom = "tata";
a.leprenom = "titi";
bbb b = (bbb)a;

Si tu as des classes dont une partie du code est commune tu dois utilisé le mécanisme d'héritage.
Si tu ne peux pas, parce que  les classes hérite déjà d'une autre classe, tu peux faire ceci:

public class bbb
{
    //raccourci syntaxique de visual studio 2008 pour les propriétées
    public string lenom { get; set; }
    public string leprenom { get; set; }
 
     public bbb(aaa a)
    {
        Set(a);      
    }

    public void Set(aaa a)
    {
        lenom = a.lenom;
        leprenom = a.leprenom;
    }

}

aaa a = new aaa();
a.lenom = "tata";
a.leprenom = "titi";
bbb b = new bbb(a);

A+


mardi 1 avril 2008 à 14:07:31 | Re : Unable to cast / cannot convert type

sebmafate

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !

il faut que tu crées une méthode pour le cast explicit :


public static explicit operation bbb(aaa a) {

   bbb b = new bbb();
   b.lenom = a.lenom;
   b.leprenom = a.leprenom;

   return b;

}


Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]

mardi 1 avril 2008 à 14:08:03 | Re : Unable to cast / cannot convert type

sebmafate

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
lien sur msdn : [ Lien ]


Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
mardi 1 avril 2008 à 14:14:08 | Re : Unable to cast / cannot convert type

Philipina

Merci pour vos réponses.

 

mardi 1 avril 2008 à 14:19:22 | Re : Unable to cast / cannot convert type

sebmafate

Membre Club Administrateur CodeS-SourceS
hum... parfois il faudrait que je relise...

public static explicit operator bbb(aaa a) {

   bbb b = new bbb();
   b.lenom = a.lenom;
   b.leprenom = a.leprenom;

   return b;

}

à mettre dans la classe aaa biensûr !


Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]



Cette discussion est classée dans : public, string, prenom, aaa, bbb


Répondre à ce message

Sujets en rapport avec ce message

Héritage, polymorphie et surcharge [ par Kleino ] Slt á ts,je suis nouveau et travaille les heritages, la polymorphie et les surcharges en c#Cependant je suis coincéet récolte cette erreur: Method mus message d'erreur [ par gaouinformaticien ] salut à tous aider moi à comprendre le message d'erreur suivant: impossible de convertir le groupe de methodes 'getnom'en un type de type non délégué message d'erreur [ par gaouinformaticien ] gaouinformaticien salut à tous aider moi à comprendre le message d'erreur suivant: impossible de convertir le groupe de methodes 'getnom'en un type Evenements dans un objet COM réalisé en c# [ par warenbe ] Bonjour, je dois faire un objet COM à partir d'un dll .net que j'avais déjà réalisé donc j'ai procédé comme suis: creation d'un nouveau projet dans v Question sur le traitement d'une base de données dont les colonnes sont inconnues [ par Finality ] Bonjour (ou bonsoir) tout le monde,Alors voilà, je développe une application et je butte sur un certain point.  Mon application (client / serveur) est envoi /reception de structure [ par flofloduc84 ] bonjours a tous,voila j'ai une structure comme sa:public struct Message{ public string commande; public string x; public string y;}est je suppresion d'une dans un fichier texte depuis une listbox [ par gaouinformaticien ] salut à tous je mets en place une application de carnet d'adresse qui enregistre recherche et supprime les informations d'une personne dans fichier t developpement de code source avec c# pour connecter une base de données mysql à travers un pocket pc [ par labad ] Bonjour à tous voila une partie de code source de la boutton connexion dans la form1 *************************************** public void coonexion


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,577 sec (4)

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