classe mère -> forcer l'implémentation de propriétés ou variables membres
11 réponses
Messenger of the red snake mountain
Bonjour à tous,
J'ai une classe parente 'Entite' exposant certaines méthodes génériques
ainsi que des méthodes dont je souhaite forcer l'implémentation par les
classes enfants.
J'ai donc fait usage de méthodes abstraites et utilisé les signatures
suivantes:
protected abstract string GetInformations();
Ce qui marche exactement comme je le souhaite.
Cependant, j'aimerais également ajouter des variables membres (string)
ou même des propriétés (si pas possible) statiques dont je peux par le
même mécanisme "forcer" l'implémentation par la classe enfant.
J'ai donc tenté d'écrire ceci:
public abstract static string Module;
Mais comme vous l'aurez deviné, c'est refusé (un membre statique ne
peut être déclaré comme override, virtual ou abstract).
Je sais que je peux déclarer une version dans la classe et ensuite utiliser
override dans la classe enfant mais l'IDE ne forcera pas le dévelopeur
à le faire.
Question: comment forcer l'implémentation de méthodes ou propriétés
statiques au sein de la classe enfant?
Merci d'avance pour vos propositions = )
.antoine
--
------------oOoo---Ôô----ooOo---------------------------
Antonio FONTES (well, me, actually)
http://www.nxtg.net/saphyr/ (tout et rien en français)
http://www.nxtg.net/is/ (blog - développeur web)
E-mail: prenom.nom@mondomaine.net
-------------------------------------------------------------
Et ma question serait alors: " Pouvez-vous donner un exemple de code qui en tirerait partie ? " (Mais bon comme maintenant, ça doit faire 2 semaines que vous avez réglé le problème, si vous voulez passer à autre chose, je ne vous en tiendrais pas rigueur :) )
J'ai fini par ne pas utiliser de méthodes statiques. C'est moche, mais à défaut de trouver mieux, je laisse comme ça pour l'instant. = /
Ok, le champ statique dont je supposais l'existence est en fait une BDD :).
Disons que pragmatiquement parlant, il est bizarre d'avoir un code genre:
IList myClients = new Client().FindAll();
au lieu de :
IList myClients = Client.FindAll();
qui me paraît bien plus lisible...
> Toujours réveillé ? J'ai du mal à garder les yeux ouverts, mais ce n'est pas à cause de vous.
; )
C'est dommage, ça apporte un gain de temps non négligeable (surtout avec un VS.NET et une BDD déjà existante).
Je prendrai le temps de regarder cette manière de faire un peu plus en détails dès que j'ai un projet de petite envergure à réaliser. Je serai fixé, vous m'avez tout de même donné envie d'y rejetter un coup d'oeil ; )
merci tout de même d'avoir pris le temps d'y ajouter une contribution ; )
Zazar
.antoine
bonjour !
Et ma question serait alors: " Pouvez-vous donner un exemple de code qui en
tirerait partie ? " (Mais bon comme maintenant, ça doit faire 2 semaines que
vous avez réglé le problème, si vous voulez passer à autre chose, je ne vous
en tiendrais pas rigueur :) )
J'ai fini par ne pas utiliser de méthodes statiques. C'est moche, mais à défaut
de trouver mieux, je laisse comme ça pour l'instant. = /
Ok, le champ statique dont je supposais l'existence est en fait une BDD :).
Disons que pragmatiquement parlant, il est bizarre d'avoir un code genre:
IList myClients = new Client().FindAll();
au lieu de :
IList myClients = Client.FindAll();
qui me paraît bien plus lisible...
> Toujours réveillé ?
J'ai du mal à garder les yeux ouverts, mais ce n'est pas à cause de vous.
; )
C'est dommage, ça apporte un gain de temps non négligeable (surtout avec un
VS.NET et une BDD déjà existante).
Je prendrai le temps de regarder cette manière de faire un peu plus
en détails dès que j'ai un projet de petite envergure à réaliser. Je serai
fixé, vous m'avez tout de même donné envie d'y rejetter un coup d'oeil ; )
merci tout de même d'avoir pris le temps d'y ajouter une
contribution ; )
Et ma question serait alors: " Pouvez-vous donner un exemple de code qui en tirerait partie ? " (Mais bon comme maintenant, ça doit faire 2 semaines que vous avez réglé le problème, si vous voulez passer à autre chose, je ne vous en tiendrais pas rigueur :) )
J'ai fini par ne pas utiliser de méthodes statiques. C'est moche, mais à défaut de trouver mieux, je laisse comme ça pour l'instant. = /
Ok, le champ statique dont je supposais l'existence est en fait une BDD :).
Disons que pragmatiquement parlant, il est bizarre d'avoir un code genre:
IList myClients = new Client().FindAll();
au lieu de :
IList myClients = Client.FindAll();
qui me paraît bien plus lisible...
> Toujours réveillé ? J'ai du mal à garder les yeux ouverts, mais ce n'est pas à cause de vous.
; )
C'est dommage, ça apporte un gain de temps non négligeable (surtout avec un VS.NET et une BDD déjà existante).
Je prendrai le temps de regarder cette manière de faire un peu plus en détails dès que j'ai un projet de petite envergure à réaliser. Je serai fixé, vous m'avez tout de même donné envie d'y rejetter un coup d'oeil ; )
merci tout de même d'avoir pris le temps d'y ajouter une contribution ; )