Что означают имена переменных, начинающиеся с _? - PullRequest
27 голосов
/ 14 февраля 2009

При написании моего первого MVC-приложения asp.net с использованием C # я вижу, что есть некоторые переменные, имена которых начинаются с символа подчеркивания (_).

Что это значит? Есть ли какое-то конкретное значение для этого?

Ответы [ 7 ]

49 голосов
/ 14 февраля 2009

Нет определенного языка значения - это просто соглашение, которое некоторые люди используют, чтобы отличать переменные экземпляра от локальных переменных. Другие варианты включают m_foo (и s_foo или g_foo или статические переменные) или mFoo; альтернативно, некоторые люди предпочитают ставить префикс локальных переменных (и параметров) вместо переменных экземпляра.

Лично я не использую префиксы как это, но это выбор стиля. До тех пор, пока все, кто работает над одним и тем же проектом, последовательны, обычно это не является большой проблемой. Я видел ужасно несовместимый код, хотя ...

24 голосов
/ 14 февраля 2009

В общем, это означает закрытые поля участника.

4 голосов
/ 14 февраля 2009

Многие люди используют их для закрытых переменных свойств (переменных, которые на самом деле хранят значения открытых свойств).

2 голосов
/ 11 августа 2016

Подчеркивание перед именем переменной _val - не более чем соглашение. В C # он используется при определении закрытой переменной-члена для открытого свойства.

Я добавлю к тому, что @ Стивен Роббинс сказал:

private string _val;
public string Values
{
    get { return _val;}
    set {_val = value;}
}
1 голос
/ 24 августа 2017

Есть еще одно преимущество при запуске свойства экземпляра с '', оно сначала отображается в Intellisense.
При создании класса значения / модели / POCO я не использую '
'.

0 голосов
/ 23 марта 2018

Я знаю, что это немного устарело, но на случай, если кто-нибудь здесь окажется, я добавлю к ответам, что если вы говорите о MVC в .NET, также существует соглашение об именовании для частичных представлений, также с их именами начиная с подчеркивания.

Это соглашения о присвоении имен, которым вы и ваша команда можете решить следовать или нет, если все вы знаете об этом решении. Я использую их также с непубличными полями, такими как приватные или защищенные, просто чтобы распознать их.

Вот небольшая информация об этом , если вы хотите читать дальше.

0 голосов
/ 15 февраля 2009

Я видел, как оно использовалось в качестве имени переменной для параметров, которые не используются как способ «скрыть» их от остальной части функции.

Я не могу сказать, что это хорошо или плохо, но оно показало, что параметр не должен использоваться в функции.

...