Что означают имена переменных, начинающиеся с?
при написании моего первого 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, чтобы просто признать их.
вот немного кратко об этом если вы хотите далее.