Cast d'objets hérités [Résolu]

Messages postés
3
Date d'inscription
mardi 15 août 2006
Dernière intervention
15 août 2006
- - Dernière réponse : white_mage
Messages postés
49
Date d'inscription
jeudi 5 février 2004
Dernière intervention
25 février 2010
- 15 août 2006 à 15:24
Bonjour,


J'ai une question vraiment bête...mais j'ai l'impression de regresser.


J'ai une class "MaClassBase" dans une bibliothèque de class. J'ai, dans mon projet, hérité une class "MaClassHeritee" qui ajoute une simple procédure de traitement.


J'ai une fonction qui me renvoie une "list(of MaClassBase)" j'aimerais convertir cette liste en "liste(of MaClassHeritee)". Cela me semble possible....mais aucune conversion ne fonctionne (CType, DirectCast, etc...). Je n'arrive pas non plus à convertir un objet MaClassBase en MaClassHeritee.


J'ai du rater un épisode parce qu'il me semble que je l'ai déjà fait plusieurs fois ?!?


Merci pour vos réponses...


grrrrrrrrrr
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
49
Date d'inscription
jeudi 5 février 2004
Dernière intervention
25 février 2010
3
Merci
On y arrive en convertissant la liste de class de base en list de class héritée via la méthode générique ConvertAll.

Un simple exemple :
Dim

obj
As List(
Of ObjetBase)  = ...
'..Remplir la list ici !!

Dim objH
as list(
of ObjetHerite) = obj.ConvertAll(
New Converter(
of ObjetBase, ObjetHerite)(
addressOf maFonctionQuiVaFaireLaConversionObjetBaseAObjetHerite)

Private
Function maFonctionQuiVaFaireLaConversionObjetBaseAObjetHerite(
ByVal o
As ObjetBase)
As ObjetHerite

Dim objTmpHerite
As
New ObjetHerite
objTmpHerite.propriete1 = o.propriete1
objTmpHerite.propriete2 = o.propriete2

'Etc.........
End
Function
Voili voilo !!! Une conversion qui utilise la magie des génériques....
A+++
White_Mage();

Merci white_mage 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 105 internautes ce mois-ci

Commenter la réponse de white_mage
Messages postés
3181
Date d'inscription
dimanche 15 février 2004
Dernière intervention
9 avril 2017
0
Merci
Salut,

Tu peut pas convertire une class cA en sa classe hérité cB.
Par contre tu peux faire l'inverse.



Kenji



Il était une fois, un pauvre petit règlement que personne ne lisait. Il est tout sympa mais il est triste, aidez-le, lisez-le, ca lui ferait plaisir ainsi qu'a n
Commenter la réponse de Charles Racaud
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
0
Merci
Tout à fait : une voiture et un véhicule, par contre, un véhicule n'est pas forcément une voiture. C'est le principe même de l'héritage !
Commenter la réponse de cs_DARKSIDIOUS
Messages postés
3
Date d'inscription
mardi 15 août 2006
Dernière intervention
15 août 2006
0
Merci
Grrre. C'est un peu bête mais c'est vrai que c'est logique.
Mais alors comment transformer ma liste "classBase" en "classHeritee" afin de pouvoir utiliser la fonction qui si trouve et qui utilise les membre de la class base ?? Y'a t-il un moyen de le faire ?
Commenter la réponse de cs_grrrrrrrrrr
Messages postés
3
Date d'inscription
mardi 15 août 2006
Dernière intervention
15 août 2006
0
Merci
De plus, je n'arrive pas a convertir une liste de type "classHeritee" en type "classBase" non plus !!! J'ai exactement le même message d'erreur dans un sens ou dans l'autre....
Commenter la réponse de cs_grrrrrrrrrr

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.