Créer une variable d'un type et y insérer un objet hérité...

sardaukarbibou Messages postés 2 Date d'inscription lundi 27 septembre 2004 Statut Membre Dernière intervention 15 février 2006 - 22 sept. 2005 à 09:14
cs_69chris Messages postés 318 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 30 décembre 2005 - 22 sept. 2005 à 10:15
Salut,

Je suis actuellement sur un projet en prog en VB.NET consistant a faire une sorte de bataille navale. Il y a pour l'instant 2 types d'unités (croiseur et transporteur) qui héritent chacune de la classe "Bateau", qui hérite de "PictureBox". Pour bien faire, il faudrait que chaque joueur ait un tableau qui contient toutes ses unités qui sont toutes des "Bateaux" mais indifférement de type "Croiseur" ou "Transporteur" (M'évitant de créer un tableau par type d'unité, ce qui peut se montrer contraignant si j'ajoute de nouvelles unités).

Malheureusement, si je crée un tableau de "Bateaux" et que j'y met par exemple un "Croiseur", je n'ai pas accès aux fonctions et propriétés de "Croiseur", mais uniquement de "Bateau", donc je ne peux rien en faire, et si je définit un tableau d'objet, j'ai accès aux propriétés et fonctions de ce que j'y insère mais je ne peux plus récupérer les évènements.

Je suis désolé si mes explications sont confuses mais je ne suis pas un gourou de la prog et j'avoue avoir un peu de mal à y retrouver mes petits....

Merci d'avance

1 réponse

cs_69chris Messages postés 318 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 30 décembre 2005 1
22 sept. 2005 à 10:15
Salut,



Tout d'abord, le comportement que tu obtient est normal. Si tu fait un
tableau de Bateau et que tu prend un élément dedans, il s'agit d'un
Bateau. Il peut s'agir d'un héritier, tu ne vois au niveau du code que
le "comportement" de base. Bon, je vais arréter, je sens que ça va être
fouilli et pas clair du tout.

Premier point, si il y a pas des propriétés/méthodes qui sont communes
entre tes différents héritiers je pense que tu les aura déjà définit au
niveau de la classe Bateau.

Ensuite, conseil pour les événements, branchent les dès que tu crées l'objet.



Enfin, tu peux déterminer à l'exécution le type de l'objet à l'aide de TypeOf et Is comme suit :

ExpressionTypeOf Is NomType



Voilà, j'espère que ça va t'aider.

Chris

N'oubliez pas de cloturer votre post.
0
Rejoignez-nous