IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Terminologie / architecture C# Setter avec evénement


Sujet :

C#

  1. #1
    Membre habitué Avatar de Nadinette
    Femme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2012
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 264
    Points : 144
    Points
    144
    Par défaut Terminologie / architecture C# Setter avec evénement
    Salut,

    Je déclenche créé un événement on change dans un setter.

    Parfois, j'ai besoin de changer une valeur sans que l'événement se déclenche.

    Donc, j'ai créé une méthode publique qui s'appelle InitializeMember qui affecte la valeur directement au membre privé et donc, qui ne déclenche pas le OnChange.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
        public class WebConfigDocument
        {
            private string _webConfigLocaton;
     
            public string WebConfigLocaton
            {
                get
                {
                    return _webConfigLocaton;
                }
                set
                {
                    _webConfigLocaton = value;
                    if(OnWebConfigDocumentChange!=null)
                        OnWebConfigDocumentChange(this, new WebConfigDocumentChangeEventArgs(enWebConfigDocumentElementChanged.Location));
                }
            }
            public WebConfigDocument(string webConfigLocaton)
            {
                this._webConfigLocaton = webConfigLocaton;
            }        
            public void InitializeLocation(string value)
            {
                this._webConfigLocaton = value;
            }
        }

    C'est très sale ou, si ça ne l'est pas, est-ce que ça correspond à un design pattern existant et si oui, lequel ?

    Merci

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 196
    Points : 5 785
    Points
    5 785
    Par défaut
    Je ne connais pas trop les patterns, mais je préférerai utiliser une variable (webConfigLocatonEventEnable) pour indiquer si les évènements son activés, surtout si tu as plusieurs valeur à changer.
    Après, je pense que ce n'est pas très propre pour les puristes, mais j'ai déjà eu besoin de faire ça pour optimiser un code (éviter des appels gourmand inutile).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
        public class WebConfigDocument
        {
            private string _webConfigLocaton;
     
            public string WebConfigLocaton
            {
                get
                {
                    return _webConfigLocaton;
                }
                set
                {
                    _webConfigLocaton = value;
                    if (webConfigLocatonEventEnable && OnWebConfigDocumentChange != null)
                        OnWebConfigDocumentChange(this, new WebConfigDocumentChangeEventArgs(enWebConfigDocumentElementChanged.Location));
                }
            }
     
            public bool webConfigLocatonEventEnable = true;
     
            public WebConfigDocument(string webConfigLocaton)
            {
                this._webConfigLocaton = webConfigLocaton;
            }
        }

Discussions similaires

  1. Réponses: 9
    Dernier message: 10/03/2008, 09h44
  2. Des getters er des Setters avec visual Studio 2005
    Par zghidi dans le forum Visual Studio
    Réponses: 9
    Dernier message: 27/02/2008, 13h37
  3. Réponses: 1
    Dernier message: 05/09/2006, 17h20
  4. Réponses: 5
    Dernier message: 12/05/2006, 22h02
  5. Architecture multi couches avec librairie borland?
    Par seb_asm dans le forum JBuilder
    Réponses: 4
    Dernier message: 08/06/2005, 10h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo