web-dev-qa-db-fra.com

Que signifient les noms de variable commençant par _?

Lors de l'écriture de ma première application MVC asp.net en C #, je constate qu'il existe des variables dont le nom commence par un caractère de soulignement (_).

Qu'est-ce que ça veut dire? Y at-il une signification spécifique pour cela?

24
Niyaz

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

Personnellement, je n'utilise pas de préfixes comme celui-ci, mais c'est un choix de style. Tant que toutes les personnes travaillant sur le même projet sont cohérentes, le problème ne se pose généralement pas. J'ai vu des horriblement code incohérent si ...

46
Jon Skeet

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

22
Ben Robbins

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

4
Steven Robbins

Le trait de soulignement précédant le 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 a déclaré:

private string _val;
public string Values
{
    get { return _val;}
    set {_val = value;}
}
1
Raktim Biswas

Je l'ai vu utilisé comme nom de variable pour des paramètres qui ne sont pas utilisés pour les "masquer" du reste de la fonction.

Je ne peux pas dire que ce soit une bonne ou une mauvaise chose, mais cela a été efficace pour indiquer que le paramètre n'était pas utilisé dans la fonction.

0
ShuggyCoUk

Je sais que c'est un peu vieux, mais au cas où quelqu'un finirait ici, j'ajouterai aux réponses que si vous parlez de MVC sur .NET, il existe également une convention de nommage sur les vues partielles, avec leurs noms commençant par un trait de soulignement. .

Ce sont des conventions de dénomination que vous et votre équipe pouvez décider de suivre ou non, tant que vous êtes au courant de la décision. Je les utilise aussi avec des champs non publics comme privés ou protégés pour les reconnaître.

Voici un petit bref à ce sujet si vous voulez lire plus loin.

0
Lalo Téllez

Il y a un autre avantage à démarrer une propriété d'instance avec '', elle apparaît en premier sur Intellisense.
Lors de la création d'une classe value/model/POCO, je n'utilise pas '
'.

0
Carlos A Merighe