Как вы называете переменные-члены в VB.NET? - PullRequest
5 голосов
/ 09 июня 2010

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

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

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

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

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

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

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

Ответы [ 7 ]

4 голосов
/ 09 июня 2010

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

Джефф Просиз говорит

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

Из. Руководства по проектированию NET Framework 2-е издание, стр. 73.

Джеффри Рихтер говорит

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

Из. Руководства по проектированию NET Framework 2-е издание, стр. 47. Энтони Мур ( BCL team ) также считает целесообразным использование "m_" и "s_", стр. 48.

3 голосов
/ 09 июня 2010

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

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

Но, как вы заметили, некоторые различия различаются необходимо .

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

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

3 голосов
/ 09 июня 2010

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

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

3 голосов
/ 09 июня 2010

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

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

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

2 голосов
/ 09 июня 2010

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

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
2 голосов
/ 09 июня 2010

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

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

1 голос
/ 09 июня 2010

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

  • Закрытым членам предшествует подчеркивание
  • Открытые члены (методы и свойства) - это PascalCase.
  • Параметры - camelCase.

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

...