Modifier le nom d'une propriété héritée d'une classe mère [Résolu]

olivierbalagizi 40 Messages postés samedi 19 mars 2005Date d'inscription 10 février 2011 Dernière intervention - 19 sept. 2006 à 14:28 - Dernière réponse : cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention
- 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?

Merci d'avance pour vos réponses.
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 19 sept. 2006 à 14:46
3
Merci
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;}
}

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]

Merci sebmafate 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 99 internautes ce mois-ci

Commenter la réponse de sebmafate
leprov 1163 Messages postés vendredi 23 juillet 2004Date d'inscription 21 octobre 2010 Dernière intervention - 19 sept. 2006 à 15:00
0
Merci
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 ;))
Commenter la réponse de leprov
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 19 sept. 2006 à 15:05
0
Merci
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.

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Commenter la réponse de sebmafate
olivierbalagizi 40 Messages postés samedi 19 mars 2005Date d'inscription 10 février 2011 Dernière intervention - 19 sept. 2006 à 15:33
0
Merci
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!
Commenter la réponse de olivierbalagizi
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 19 sept. 2006 à 17:35
0
Merci
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...

VC# forever
Commenter la réponse de cs_Bidou

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.