2009-02-14 10 views

Répondre

40

Il n'y a pas de signification définie par la langue - c'est juste une convention que certains utilisent pour distinguer les variables d'instance des variables locales. D'autres variantes incluent m_foo (et s_foo ou g_foo ou des variables statiques) ou mFoo; alternativement, certaines personnes préfèrent les variables locales (et les paramètres) au lieu des variables d'instance.

Personnellement, je n'utilise pas de préfixes comme celui-ci, mais c'est un choix de style. Tant que tout le monde travaille sur le même projet, ce n'est généralement pas un problème. J'ai vu certains horriblement code incohérent si ...

18

En général, cela signifie des champs membres privés.

+5

Plus généralement, pour les champs d'instance non publics (qui incluent aussi les champs internes et protégés). – Noldorin

4

Beaucoup de gens les utilisent pour les variables privées de propriété (les variables qui stockent réellement les valeurs pour les propriétés publiques).

0

Je l'ai vu utilisé comme un nom de variable pour les paramètres qui ne sont pas utilisés comme un moyen de les «cacher» loin du reste de la fonction.

Je ne peux pas dire que c'est une bonne ou une mauvaise chose, mais c'était efficace pour indiquer que le paramètre ne devait pas être utilisé dans la fonction.

1

Le trait de soulignement précédé d'un nom de variable _val n'est rien de plus qu'une convention. En C#, il est utilisé lors de la définition de la variable membre privé pour une propriété publique.

Je vais ajouter à ce que @Steven Robbins dit:

private string _val; 
public string Values 
{ 
    get { return _val;} 
    set {_val = value;} 
} 
0

Il y a un autre avantage à partir d'une propriété d'instance avec « », il apparaît d'abord sur IntelliSense.
Lors de la création d'une classe valeur/modèle/POCO, je n'utilise pas '
'.

Questions connexes