OVH Cloud OVH Cloud

Conversion d'objet

2 réponses
Avatar
Tamia
Bonjour,

J'ai une classe B (cadre) qui hérite d'une classe A (employé) (B est une
classe fille de A, un cadre est un employé). Dans le code de la classe A, je
constate que l'objet sur lequel je suis en train de travailler peut être
convertit en un objet de la classe B (en m'occupant d'un employé, je constate
qu'il doit être transformé en cadre).

Quel code dois-je écrire dans une méthode de la classe A pour que l'objet
sur lequel je travaille se convertisse en un objet de classe B.

Merci pour votre réponse.

2 réponses

Avatar
Millox Frédéric
Salut Tamia,

Essaye la fonction CType ( VB 6 ? ) qui marche très bien mais par contre je
ne crois pas que ça soit du VB net ( ça marche mais c'est moins propre )

A+

--
fmillox


"Tamia" a écrit :

Bonjour,

J'ai une classe B (cadre) qui hérite d'une classe A (employé) (B est une
classe fille de A, un cadre est un employé). Dans le code de la classe A, je
constate que l'objet sur lequel je suis en train de travailler peut être
convertit en un objet de la classe B (en m'occupant d'un employé, je constate
qu'il doit être transformé en cadre).

Quel code dois-je écrire dans une méthode de la classe A pour que l'objet
sur lequel je travaille se convertisse en un objet de classe B.

Merci pour votre réponse.


Avatar
Mehdi
On Sun, 12 Mar 2006 14:36:11 -0800, Tamia wrote:

J'ai une classe B (cadre) qui hérite d'une classe A (employé) (B est une
classe fille de A, un cadre est un employé). Dans le code de la classe A, je
constate que l'objet sur lequel je suis en train de travailler peut être
convertit en un objet de la classe B (en m'occupant d'un employé, je constate
qu'il doit être transformé en cadre).



Le principe d'une classe de base et des classe dérivées est que la classe
de base ne contient que les propriétés et méthodes communues a l'ensemble
des classes dérivées. Si dans ta classe de base A, tu doit caster un object
vers une classe dérivée B, alors tu a un gros probleme dans ton design car
une classe de base ne devrait normalement pas avoir connaissance de ses
classes dérivées. Si tu commence a caster dans tout les coins de ta classe
A des objects de type A vers des objects de type B, C, D dérivés de A,
alors a chaque modification de l'arbre d'héritage, tu devra modifier le
code de ta classe A pour prendre en compte les modifications. Cela
transformera la maintenance de ton systeme en un cauchemar.

Si une méthode de la classe Employé doit effectuer des actions spécifiques
au type d'Employé sur laquelle elle travaille, alors "override" cette
méthode dans chacune des classes dérivées.