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

cs_grrrrrrrrrr 3 Messages postés mardi 15 août 2006Date d'inscription 15 août 2006 Dernière intervention - 15 août 2006 à 11:46 - Dernière réponse : white_mage 49 Messages postés jeudi 5 février 2004Date d'inscription 25 février 2010 Dernière intervention
- 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
white_mage 49 Messages postés jeudi 5 février 2004Date d'inscription 25 février 2010 Dernière intervention - 15 août 2006 à 15:24
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

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 81 internautes ce mois-ci

Commenter la réponse de white_mage
Charles Racaud 3181 Messages postés dimanche 15 février 2004Date d'inscription 9 avril 2017 Dernière intervention - 15 août 2006 à 12:11
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
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 15 août 2006 à 12:15
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
cs_grrrrrrrrrr 3 Messages postés mardi 15 août 2006Date d'inscription 15 août 2006 Dernière intervention - 15 août 2006 à 14:02
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
cs_grrrrrrrrrr 3 Messages postés mardi 15 août 2006Date d'inscription 15 août 2006 Dernière intervention - 15 août 2006 à 14:07
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.