2010-06-09 3 views
5

Я вообще не один, чтобы участвовать в субъективных аргументах по вопросам, таким как переименование имен, форматирование кода и т. Д. Поэтому я не собираюсь начинать здесь аргумент.Как вы называете переменные-члены в VB.NET?

Я просто наткнулся на this (старый) в блоге, который рекомендует не префиксов имен переменных членов:

Do не использовать префикс для элемента переменных (_, m_, s_ и т.д.). Если вы хотите различать местные и переменные-члены, вы должны использовать «это». в C# и «Me». в VB.NET.

Для C#, да, я получаю: переменные-члены могут быть ниже camelCase, а общедоступными свойствами/методами может быть PascalCase. Но VB.NET не чувствителен к регистру, поэтому вы не можете дать частному члену то же имя, что и публичное свойство, за исключением первой буквы в нижнем регистре.

Я обычно префиксные переменные-члены с подчеркиванием, но мне сказали, что это не идиоматично.

Так что мне просто интересно: как вы называете переменные-члены в VB.NET? И есть ли «стандартный» способ?

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

+0

Возможный дубликат [Соглашение об именах Microsoft VB.NET] (http://stackoverflow.com/questions/668157/microsoft-vb-net-naming-convention) –

+0

@ ho1: Каждый раз, когда я сталкиваюсь с тем, что кто-то говорит об условных обозначениях, они обсуждают в основном все возможные вещи, которые вы могли бы назвать, кроме частных. Мне просто интересно, как люди конкретно называют свои переменные-члены. –

+2

Является ли это только тем, что гласит: «Мне просто любопытно, как люди называют конкретно свои частные переменные-члены». как немного грубо?;) –

ответ

4

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

Jeff Prosise говорит

как вопрос личных предпочтений я обычно префикс частных полей с подчеркивания [в C#] ... Это соглашение используется довольно много в рамках .NET, но она не используется на протяжении.

От. NET Framework Design Guidelines второго издания страница 73.

Jeffrey Richter говорит

Я делаю все мои поля частными и я префикс моих полей экземпляра с «m_» и моими статическими полями с «s_» [в C#]

От. NET Framework Design Guidelines 2nd Edition стр. 47. Энтони Мур (BCL team) также считает, что использование «m_» и «s_» заслуживает внимания, стр. 48.

+1

Я принимаю этот ответ (просто чтобы принять его), потому что я очень ценю ссылки. Если это достаточно хорошо для этих ребят, для меня это достаточно хорошо (или, говоря иначе, если * эти * ребята готовы игнорировать предложение «не префиксные переменные», так я тоже). –

3

Я делаю это как вы.

Private _myVar as Object 

Public Property MyVar() As Object 
    Get 
     Return Me._myVar 
    End Get 
    Set(ByVal value As Object) 
     Me._myVar = value 
    End Set 
End Property 

И в конструкторе

Public Sub New(myVar as object) 
    Me._myVar = myVar 
End Sub 

Но я думаю, что это дело вкуса.

+0

После различных попыток я также решил использовать префикс «подчеркивания» для частных членов. – Drake

+0

Извините, что задал вопрос на старом посту, но у меня есть и я, и _ * меня ._ * не переборщить? Я уверен, что это мое понимание (или отсутствие), но я полагаю, что это просто предпочтение, и как я, так и _ не предлагают каких-либо программных преимуществ/недостатков? – Dave

+0

@DaveRook: Если вы имеете в виду 'Me', imho, это не может быть достаточно ясным, и две буквы не так дорого стоят. Вы также можете использовать свойство: 'Me.MyVar = myVar'. «Ме» также предотвращает наличие замкнутых бесконечных циклов. –

2

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

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

+0

http://weblogs.asp.net/scottgu/archive/2010/04/05/automatic-properties-collection-initializers-and-implicit-line-continuation-support-with-vb-2010.aspx –

+0

@Justin - Я немного изменил свой ответ. У меня есть VS2010, но мне еще не разрешено использовать новую функцию, потому что я также работаю над кучей кода, который все еще приходится компилировать с помощью vs2008. В результате я продолжаю забывать, что он там. –

+0

Конечно, я знаю «боль». Поразили, хотя и должны сказать, что это отличная экономия времени. –

3

Я лично использую m_ для переменных-членов.

Хотя с автоматическими свойствами в VS 2010 я не нуждался ни в каком новом коде, который я написал недавно.

1

Хотя многие из MS-кода, похоже, используют m_ * для частных объявлений, я сохраняю сам символ и просто использую _name для частных членов. Мои правила:

  • Частные члены предваряется подчеркиванием
  • общественных членов (методы и свойства) PascalCase.
  • Параметры camelCase.

Поскольку я работаю на C#, наличие имени параметра с тем же именем, что и свойство с другим случаем, не проблема. Однако это не сработает в VB.

+0

Параметры, конечно, могут иметь то же имя, что и собственность в VB. Если вы хотите получить доступ к свойству вместо параметра, просто квалифицируйте класс: 'Me.PropertyName'. –

3

Мне не нравится начинать строку/имя с подчеркивания, так как всегда выглядит так, как если бы линия была отступом от дополнительного пространства: это просто делает код неуравновешенным. Кроме того, одинокий знак подчеркивания слишком незаметен для моего вкуса: я предпочитаю, чтобы идентификаторы были четко различимы.

Поэтому я периодически переключаюсь между суффиксом подчеркивания (например, example_) и префиксом m_. Я не могу решить, кто из тех, кого я предпочитаю, так как мне на самом деле не нравится. Но аргумент против подчеркивания подчеркивания частично также применяется к символам подчеркивания суффиксов.

Но как вы отметили, вид отличия .

И, как я уже упоминал в другом месте, у меня были очень плохие впечатления с различием только для случая в C# - слишком просто путать имена и, следовательно, записывать в приватную переменную вместо свойства. Это имеет значение, если свойство либо проверяет, либо преобразует заданное значение.

По этой причине я предпочитаю использовать какой-то префикс в C#.

2

Мы используем _ (подчеркивание) для префикса имен переменных. Это коротко и в точку ...

Private _ID as integer 
Public Property ID() As Integer 
    Get 
     Return _ID 
    End Get 
    Set(ByVal value As Integer) 
     _ID = value 
    End Set 
End Property 
Смежные вопросы