Factoriser 4 méthodes en une

MiniTyson - 23 mars 2013 à 15:16
Whismeril Messages postés 19027 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 24 avril 2024 - 23 mars 2013 à 19:48
Bonjour j'aimerais savoir comment faire pour factoriser 4 méthodes.
Les méthodes sont de cette forme.



/// Sol4
public String Sol4
{
get
{
return this._sol4;
}
set
{
if (this._sol4 == value)
{
return;
}
this._sol4 = value;
this.NotifChang("Sol4");

}





Simplement les noms des attributs changent (sol4, sol3, ...) sinon le code est le même, j'ai vu en recherchant un peu l'utilisation de delegate mais je ne comprend pas trop comment l'utiliser.

merci de votre aide

2 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
23 mars 2013 à 15:24
C'est pas des méthodes, c'est une propriété avec ses accesseurs.

A ma connaissance tu ne pourras pas factoriser, tu es obligé de faire ce code là pour chaque propriété.



[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
0
Whismeril Messages postés 19027 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 24 avril 2024 656
23 mars 2013 à 19:48
Bonsoir,

tu peux faire une bidouille de ce style

        public string Sol1
        {
            get { return ReturnSol(1); }
            set { AffecteSol(value, 1); }
        }

        private string ReturnSol(int index)
        {
            switch (index)
            {
                case 1:
                    return this._Sol1;

                default:
                    return "Erreur";
            }
        }

        private void AffecteSol(string value, int index)
        {
            switch (index)
            {
                case 1:
                    this._Sol1 = value;//perso je ne vois pas l'interret de tester si c'est égal, ça ralonge de la durée d'exécution
                    break;
            }
        }



tu ne gagnes pas vraiment en ligne de code, mais peut être en maintenance

Whismeril
0
Rejoignez-nous