Что означают имена переменных, начинающиеся с?

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

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

7 ответов


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

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


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


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


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

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

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

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

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


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


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

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

вот немного кратко об этом если вы хотите далее.