Как Вы называете членские переменные в VB.NET?

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

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

Не используйте префикс для членских переменных (_, m _, s _, и т.д.). Если Вы хотите различать локальный и членские переменные, необходимо использовать "это". в C# и "Мне". в VB.NET.

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

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

Таким образом, действительно мне просто любопытно: как Вы называете свои членские переменные в VB.NET? И существует ли "стандартный" путь?

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

5
задан Dan Tao 9 June 2010 в 13:44
поделиться

7 ответов

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

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

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

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

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

, что я делаю все свои поля закрытыми и добавляю к полям экземпляра префикс «m_», а статические поля - «s_ "[в C #]

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

4
ответ дан 18 December 2019 в 09:05
поделиться

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

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

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

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

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

3
ответ дан 18 December 2019 в 09:05
поделиться

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

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

3
ответ дан 18 December 2019 в 09:05
поделиться

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

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

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

1
ответ дан 18 December 2019 в 09:05
поделиться

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

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

2
ответ дан 18 December 2019 в 09:05
поделиться

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

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

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

3
ответ дан 18 December 2019 в 09:05
поделиться

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

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
ответ дан 18 December 2019 в 09:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: