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 :

[C#] Il y a-t-il une norme sur l'usage du mot clé "this


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 111
    Points : 65
    Points
    65
    Par défaut [C#] Il y a-t-il une norme sur l'usage du mot clé "this
    Bonjour !

    J'ai remarqué, selon les projets, que des gens utilisent indifférament :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    -  this.labelInfo.Text = "blabla";
    -  labelInfo.Text      = "blabla";
    Ces 2 versions marchent sans problème, mais y a-t-il une "norme" selon laquelle il serait mieux de faire précéder d'un "this" ses variables, controlleurs, ...

    Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    487
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 487
    Points : 621
    Points
    621
    Par défaut
    this est facultatif mais permet de profiter d'intellisense pour l'écriture des membres suivants.
    On ne peut pas faire boire un âne qui n'a pas soif.

  3. #3
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Il n'y a aucune convention à ce niveau. Comme l'a indiqué NicolasG, l'interêt est d'avoir l'intellisense lorsque l'on utilise this. L'autre avantage c'est qu'au premier coup d'oeil tu peux aussi dire si tu as à faire à un membre ou non.

    Mails il n'y a absolument aucune convention là dessus, c'est à toi de voir comment tu préfères coder
    Pas de questions techniques par MP

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 111
    Points : 65
    Points
    65
    Par défaut
    Ah d'accord, c'est tout ce que je voulais savoir !

    Merci beaucoup

  5. #5
    jab
    jab est déconnecté
    Rédacteur
    Avatar de jab
    Homme Profil pro
    SharePoint developpeur
    Inscrit en
    Février 2004
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : SharePoint developpeur
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 1 173
    Points : 4 339
    Points
    4 339
    Par défaut
    Je voudrai encore préciser une autre utilité. et comme un exemple vaut souvent mieux qu'une longue explication:

    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
     
    public class Exemple
    {
          public int v1 ;
     
          public Exemple()
          { v1 = 7;}
     
          public method Abc()
          {
               private int v1 ;
               v1 = 3;
     
              Console.Writeline(v1) // -> 3
              Console.Writeline(this.v1) // -> 7
          }
     }

  6. #6
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Pas faux, même si déclarer une variable dans une méthode avec le même nom qu'une des variables membres de la classe n'est pas très propre, enfin moi je trouve pas ça très propre
    Pas de questions techniques par MP

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    487
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 487
    Points : 621
    Points
    621
    Par défaut
    Cher Morpheus, je te remercie d'éclairer ainsi notre lanterne.
    Notre ami Tips s'interrogeait sur une simple habitude de codage et non sur la signification de this.
    Je me souviens d'un temps (que les moins de vingt ans ne peuvent pas connaîîîtreuuu...) où les éditeurs de code ne connaissaient pas le code completion ou intellisense. Dans le code C++, on ne trouvait jamais de this quand il n'était pas requis
    On ne peut pas faire boire un âne qui n'a pas soif.

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Points : 730
    Points
    730
    Par défaut
    Il y a une convention qui semble être plutôt du côté de Java. La tendance étant à ne pas préfixer les noms des champs privés, il peut y avoir conflit avec des variables locales. Donc this est utilisé pour tout accès à un champ.

    Ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    private int bleh;
    public MyClass( int bleh )
    {  this.bleh = bleh;}
    Mais si tu préfixes les noms des champs par _ (la tendance côté .NET), il n'y a plus de conflit, donc plus de problème. Et tu as un petit bonus avec Intellisense puisque faire '_' et Ctrl-Space affiche la liste des champs plutôt que la liste de tous les membres après 'this.' :)

    Après c'est beaucoup une question de goût et tout autant une question de lisibilité. De mon côté, les noms des champs sont préfixés par _ (pour les deux raisons ci-dessus), mais j'ai tendance à mettre 'this.' pour les appels de méthodes/propriétés.
    Je ne saurais pas donner d'explication scientifique pour ça, je trouve juste que ça se lit mieux :)
    Be wary of strong drink.
    It can make you shoot at tax collectors, and miss.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/04/2008, 10h56
  2. imprimer une énorme cellule
    Par Maxence45 dans le forum Excel
    Réponses: 2
    Dernier message: 27/11/2007, 18h02
  3. Existe-t-il une norme de nomage des packages ?
    Par Pierre8r dans le forum Langage
    Réponses: 3
    Dernier message: 16/08/2007, 23h31
  4. Existe-t-il une norme de programmation ?
    Par dsr57 dans le forum EDI/Outils
    Réponses: 6
    Dernier message: 15/03/2007, 10h15
  5. [InstallShield] Fractionner une BD énorme sur plusieurs CD
    Par annedeblois dans le forum Windows
    Réponses: 1
    Dernier message: 25/01/2006, 19h16

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