Здравствуйте, Lloyd, Вы писали:
L>Но использование _ для приватных полей очень удобно. Зачем себя тут ограничивать?
странно... смотрю листинги с примерами из MSDN и т.д. — не видно там подчеркивания. Зачем оно? prop — приватное поле, Prop — свойство. Зачем тут еще разные птичьи символы?
... << RSDN@Home 1.1.3 beta 1 >>
Старый глюк лучше новых двух!
Re[4]: Именование полей, переменных, выбор нотации
Здравствуйте, Al-Ko, Вы писали:
AK>странно... смотрю листинги с примерами из MSDN и т.д. — не видно там подчеркивания. Зачем оно? prop — приватное поле, Prop — свойство. Зачем тут еще разные птичьи символы?
AVK>Ты сам то читал? В курсе что это руководство к стилю внешнего интерфейса? Про приватные поля и локальные переменные там ни слова.
AVK>PS: сам МС нередко применяет в фреймворке префикс m_ для приватных членов.
Do not use Hungarian notation for field names. Good names describe semantics, not type.
Do not apply a prefix to field names or static field names. Specifically, do not apply a prefix to a field name to distinguish between static and nonstatic fields. For example, applying a g_ or s_ prefix is incorrect.
... << RSDN@Home 1.1.3 beta 1 >>
Старый глюк лучше новых двух!
Re[8]: Именование полей, переменных, выбор нотации
AVK>PS: сам МС нередко применяет в фреймворке префикс m_ для приватных членов.
Что не мешает подобному стилю именования быть весьма некрасивым (это, конечно, убъективно, но все-таки...). Кстати, там рядом, в этом naming guide кажется все-таки есть пара грубых слов по поводу незначащих префиксов типа m_
Re[5]: Именование полей, переменных, выбор нотации
Здравствуйте, Al-Ko, Вы писали:
AK>там, в частности, есть такие слова:
AK>
AK>Do not use Hungarian notation for field names. Good names describe semantics, not type.
AK>Do not apply a prefix to field names or static field names. Specifically, do not apply a prefix to a field name to distinguish between static and nonstatic fields. For example, applying a g_ or s_ prefix is incorrect.
Ага, это называется правая рука не знает что делает левая. Вот к примеру:
Здравствуйте, Igor Trofimov, Вы писали:
iT>Что не мешает подобному стилю именования быть весьма некрасивым
Вопрос вкуса. В любом случае приватные, публичные члены, локальные переменные и параметры методов должны различаться по написанию. Синтаксиса, удовлетворяющего этому и притом идеального я не встречал.
AVK>Вопрос вкуса. В любом случае приватные, публичные члены, локальные переменные и параметры методов должны различаться по написанию. Синтаксиса, удовлетворяющего этому и притом идеального я не встречал.
Согласен, действительно во многом — дело вкуса.
Re[8]: Именование полей, переменных, выбор нотации
Здравствуйте, Igor Trofimov, Вы писали:
iT>А где я утверждал обратное? Префикс "_" — это плохо, а если разница — только в регистре — это вообще кошмар, имхо.
Префикс '_' для внутренных полей класса — это как раз хорошо. Во-первых, хорошо для отличия от локальных переменных и параметров. Во-вторых, удобнее использование IntelliSense. В-третьих, открываем отладчик и видим, что в падавляющем числе классов MS использует именно этот способ для объявления внутренних полей. Да и по опыту, попробовав множество всяких вариантов, именно этот способ кажется моему ИМХУ наиболее удобным
Если нам не помогут, то мы тоже никого не пощадим.
Re[10]: Именование полей, переменных, выбор нотации
Здравствуйте, IT, Вы писали:
IT>В-третьих, открываем отладчик и видим, что в падавляющем числе классов MS использует именно этот способ для объявления внутренних полей.
Справедливости ради чаще все таки используется m_ и s_
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, IT, Вы писали:
IT>>В-третьих, открываем отладчик и видим, что в падавляющем числе классов MS использует именно этот способ для объявления внутренних полей.
AVK>Справедливости ради чаще все таки используется m_ и s_
в свете последних событий можно сказать что и g_ они не брезгуют =)
* thriving in a production environment *
Re[10]: Именование полей, переменных, выбор нотации
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, Igor Trofimov, Вы писали:
iT>>Что не мешает подобному стилю именования быть весьма некрасивым
AVK>Вопрос вкуса. В любом случае приватные, публичные члены, локальные переменные и параметры методов должны различаться по написанию.
Каким образом ты различаешь локальные переменные и параметры методов?
Re[11]: Именование полей, переменных, выбор нотации
Здравствуйте, alexkro, Вы писали:
AVK>>Вопрос вкуса. В любом случае приватные, публичные члены, локальные переменные и параметры методов должны различаться по написанию.
A>Каким образом ты различаешь локальные переменные и параметры методов?
AVK>Ага, это называется правая рука не знает что делает левая. Вот к примеру:
AVK>Assembly.m_assemblyData AVK>Assembly.m_cachedData AVK>Assembly.s_localFilePrefix
а-а, я понял! Они просят не пользоваться префиксами, потому что пользуются ими сами — чтобы не было конфликтов
... << RSDN@Home 1.1.3 beta 1 >>
Старый глюк лучше новых двух!
Re[11]: Именование полей, переменных, выбор нотации
> AVK>Вопрос вкуса. В любом случае приватные, публичные члены, локальные переменные и параметры методов должны различаться по написанию. Синтаксиса, удовлетворяющего этому и притом идеального я не встречал. > Согласен, действительно во многом — дело вкуса.
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, IT, Вы писали:
IT>>В-третьих, открываем отладчик и видим, что в падавляющем числе классов MS использует именно этот способ для объявления внутренних полей.
AVK>Справедливости ради чаще все таки используется m_ и s_
я думаю когда MS писал код у них не было еще Visual Studio с Intellisense. Вот он и наплодил в notepad этих доисторических пре+суффиксов в своих исходниках.
То же самое относится и к префиксу _
Если пользоваться intellisense то получается
get { return this.privateMember; }
а если не пользоваться, то
get { return _privateMemeber; }
надо у IT подсмотреть в исходники что бы догадку проверить
Re[5]: Именование полей, переменных, выбор нотации
Здравствуйте, Al-Ko, Вы писали:
AK>Здравствуйте, Lloyd, Вы писали:
L>>Но использование _ для приватных полей очень удобно. Зачем себя тут ограничивать?
AK>странно... смотрю листинги с примерами из MSDN и т.д. — не видно там подчеркивания.
Плохо смотришь. Например глянь на последние ролики из MSDN TV.
Еще очень полезно скачать ротор (исходники дотнета) и натравить на него поиск по файлам VS. Ставишь в путь CLI\fx\src и в поиск _\:i (с включенными регэкспами)... нажимаешь поиск... и любуешся на список файлов:
V VD>Еще очень полезно скачать ротор (исходники дотнета) и натравить на него поиск по файлам VS. Ставишь в путь CLI\fx\src и в поиск _\:i (с включенными регэкспами)... нажимаешь поиск... и любуешся на список файлов: VD>[code] VD>C:\MyProjects\CLI\fx\src\net\system\net\webproxy.cs(105): _Credentials = Credentials;
ну знаешь, в MS и венгры работают...
... << RSDN@Home 1.1.3 beta 1 >>
Старый глюк лучше новых двух!
Re[7]: Именование полей, переменных, выбор нотации
Здравствуйте, Al-Ko, Вы писали:
AK>ну знаешь, в MS и венгры работают...
VD>C:\MyProjects\CLI\fx\src\xml\system\newxml\xslt\xsltransform.cs(221): _CompiledStylesheet = compiledStylesheet; VD>C:\MyProjects\CLI\fx\src\xml\system\newxml\xslt\xsltransform.cs(222): _QueryStore = queryStore;
Здравствуйте, mihailik, Вы писали:
A>>>Каким образом ты различаешь локальные переменные и параметры методов?
AVK>>Различать их особого смысла нет
M>Точно. Локальные переменные сами по себе имеют отличительный префикс "this."
this применяется к переменным-членам класса (или просто "поле"). Локальные — это локальные и они не видимы через this. Если ты, конечно, свой язык не пишешь
Re[13]: Именование полей, переменных, выбор нотации