mamamiya92
Messages postés14Date d'inscriptionmardi 13 janvier 2009StatutMembreDernière intervention 4 janvier 2019
-
27 avril 2009 à 15:20
mamamiya92
Messages postés14Date d'inscriptionmardi 13 janvier 2009StatutMembreDernière intervention 4 janvier 2019
-
28 avril 2009 à 15:20
Bonjour,
Je n'ai peut-être pas bien cherché dans le forum, mais j'ai une question assez simple pour les connaisseurs moins pour moi:
Je m'explique:
J'ai un "projet dll". Dans ma dll j'ai une classeA avec ses méthodes. On vient de me demander d'ajouter d'autres fonctionnalités, j'ai donc ajouté une classeB.
Ces deux classes ne font pas forcément la même chose, mais certaines méthodes de la classeA peuvent être utilisées dans la classeB.
J'aimerais savoir s'il est possible de créer une classe mère des classeA et classeB, que j'appelerai classeAB (par exemple) et qui gèrera les méthodes communes aux deux sous-classes?
Cela me permettra de n'implémenter dans classeA ou classeB que leur méthode spécifique.
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 201549 27 avril 2009 à 15:51
Salut
Ton problème me paraît simple, c'est pourquoi je ne suis pas sûr de bien l'avoir compris.
Pour faire hériter A et B d'une classe mère AB, il suffit de faire
class A : AB
{
//...
}
et
class B : AB
{
//...
}
Tous tes membres / propriétés / méthodes de la class M qui ne sont pas privés (donc public, internal (s'il s'agit du même assembly (= Projet grosso-modo)) ou protected) seront accessibles dans tes classes A et B
Donc si tu fais
class AB
{
protected int monInt = 5;
public int MonIntAuCarre()
{
return monInt * monInt;
}
}
class A : AB
{
public int MonInt
{
set { monInt = value; }
}
}
tu pourras faire
A a = new A();
a.MonInt = 10;
a.MonIntAuCarre(); // 100
!! Attention : en C#, une classe ne peut hériter que d'1 autre classe. !!
Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
mamamiya92
Messages postés14Date d'inscriptionmardi 13 janvier 2009StatutMembreDernière intervention 4 janvier 2019 28 avril 2009 à 14:53
Merci pour ces réponses.
Effectivement, il m'arrive d'avoir la tête en l'air même si je suis dans la notion d'objet que depuis 3 mois...en parallèle à d'autres choses
Merci.
PS: Une petite remarque...Je ne sais pas si je dois ouvrir une nouvelle question pour cela.
Est-il possible d'avoir une enum d'enum?
public enum ENUM1
{
a = 1,
b=2
}
public enum ENUM2
{
c = 3,
d =4
}
Comment avoir une ENUM de sorte que je puisse faire: "ENUM.ENUM1.a"...
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 201549 28 avril 2009 à 15:02
Non, ce n'est pas possible. Tu seras obligé de passer par des classes / structures.
Un enum est juste un int qu'on a joliment remplacé par du texte pour se simplifier la vie.
Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
Vous n’avez pas trouvé la réponse que vous recherchez ?
mamamiya92
Messages postés14Date d'inscriptionmardi 13 janvier 2009StatutMembreDernière intervention 4 janvier 2019 28 avril 2009 à 15:20
Merci,
Effectivement, j'ai créé une classe de mes deux enum. Le souci que j'ai c'est que j'ai une méthode définie dans une interface que je voudrais voir commune.
Je m'explique:
J'ai une méthode
void MaMethode(ENUM1 monEnum)
{
etc...
}
Je ne voudrais pas dans chacune des 2 classes qui implémente ma méthode MaMethode()
void MaMethode(ENUM2 monEnum)
{
etc...
}
Je ne vois pas pour l'instant comment je pourrais faire:
void MaMethode(ENUM monEnum)
{
etc...
}
ENUM prendra en compte ENUM1 et ENUM2...
Je suis peut-être un boulet, mais bon, je pense que vous pourrez m'aider
Merci.