olivierbalagizi
Messages postés40Date d'inscriptionsamedi 19 mars 2005StatutMembreDernière intervention10 février 2011
-
19 sept. 2006 à 14:28
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 2013
-
19 sept. 2006 à 17:35
Bonjour chers Csharpiens.
Je ne sais pas s'il ya un moyen de modifier, dans une classe fille, le nom d'une propriété hérité d'une classe mère dans C#.net (2005). Au fait j'ai une classe Frais qui contient des propriétés entre autre CodeEmploye et Montant. Je veux que la classe fille FraisMedicaux qui hérite de la classe mère Frais possède les propriétés MontantHopital et MontantPharmacie. Alors, pour une certaine raison, j'aimerai transformer le nom de la propriété Montant en MontantHopital mais dans la classe fille. Est-ce que cela est possible?
2ème question:
Peut-on rendre la propriété Montant invisible dans la classe fille FraisMedicaux alors qu'elle est public dans la classe mère Frais?
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201436 19 sept. 2006 à 14:46
c'est possible par détournement.
en gros, tu fais :
public decimal MontantPharmacie {
get {return base.Montant;}
set {base.Montant = value;}
}
et maintenant on masque l'ancienne propriété :
[EditorBrowsable(EditorBrowsableState.Never)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[Browsable(false)]
public new decimal Montant {
get {return Decimal.Zero;}
}
leprov
Messages postés1160Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention21 octobre 201017 19 sept. 2006 à 15:00
et en faisant?
private new decimal montant
{
get
{return base.Montant;}
set
{base.Montant = value;}
}
public decimal MontantPharmacie {
get {return montant;}
set {montant = value;}
}
en C++ ce genre de syntaxe fonctionne (override un membre public de la classe mère en membre privé dans la classe fille), mais en C#? (je propose sans savoir si ca fonctionne, ca meclairera aussi au passage dans ce cas ;))
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201436 19 sept. 2006 à 15:05
ca fonctionne aussi...
Par contre, je ne vois pas l'intérêt de "changer" le nom d'une propriété dans une classe fille...
normalement, dans le concept objet, toutes les classes dérivant d'une classe mère doivent avoir au minimum les mêmes membres que la classe mère. Hors là... ce n'est plus vrai.
Si le but est de changer le nom dans le PropertyGrid, je te conseille plutot l'utilisation de l'attribut DisplayName.
olivierbalagizi
Messages postés40Date d'inscriptionsamedi 19 mars 2005StatutMembreDernière intervention10 février 2011 19 sept. 2006 à 15:33
Merci Leprov pour la réponse mais le problème avec celle-ci c'est que la propriété Montant reste toujours visible alors que jou voulais qu'elle ne le soit pas!
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 19 sept. 2006 à 17:35
La remarque de sebmafate est très correcte: en langage orienté object, ça n'a pas vraiment de sens de modifer le nom d'une méthode fille, le concept voulant qu'une class fille reprenne les membres de la class mère...