Я обычно не один для привлечения в субъективных аргументах по вопросам как переменное именование, форматирование кода, и т.д. Таким образом, у меня нет намерения запустить аргумент здесь.
Я просто столкнулся с этим (старым) сообщением в блоге, которое рекомендует не снабдить префиксом членские имена переменной:
Не используйте префикс для членских переменных (_, m _, s _, и т.д.). Если Вы хотите различать локальный и членские переменные, необходимо использовать "это". в C# и "Мне". в VB.NET.
Для C#, да, я получаю его: членские переменные могут быть нижним Camel-регистром, и общедоступными свойствами/методами может быть PascalCase. Но VB.NET нечувствителен к регистру, таким образом, Вы не можете действительно дать члену парламента, не занимающему официального поста то же имя, как общественная собственность кроме с нижним регистром сначала обозначает буквами.
Я обычно снабжал префиксом членские переменные подчеркивание, но мне сказали, что это не идиоматично.
Таким образом, действительно мне просто любопытно: как Вы называете свои членские переменные в VB.NET? И существует ли "стандартный" путь?
Я не спрашиваю, потому что я полагаю, что существует "правильный" путь или потому что я особенно хочу изменить свой стиль, и конечно не потому что у меня есть любое требование сказать другим, что они "неправы". Как я сказал, мне просто любопытно.
Это личное предпочтение, хотя есть широко распространенная поддержка наличия некоторого различия. Я не думаю, что даже в C # есть одно широко используемое соглашение.
Джефф Просайз говорит
По личным предпочтениям я обычно префикс закрытых полей с подчеркиванием [в C #] ... Это соглашение довольно часто используется в платформе .NET, но не используется через.
Из. Рекомендации по проектированию .NET Framework 2-е издание, стр. 73.
Джеффри Рихтер говорит
, что я делаю все свои поля закрытыми и добавляю к полям экземпляра префикс «m_», а статические поля - «s_ "[в C #]
Из. Рекомендации по проектированию .NET Framework 2-е издание, стр. 47. Энтони Мур ( команда BCL ) также считает, что использование «m_» и «s_» заслуживает рассмотрения, стр. 48.
Мне не нравится начинать строку / имя с подчеркивания, поскольку это всегда выглядит так, как если бы строка была сдвинута дополнительным пробелом: это просто делает код несбалансированным. Кроме того, на мой вкус одинокое подчеркивание слишком незаметно: я предпочитаю, чтобы идентификаторы были четко различимы.
Поэтому я периодически переключаюсь между суффиксом подчеркивания (например, example_
) и префиксом m_
. Я не могу решить, какой из них предпочитаю, потому что ни то, ни другое мне не нравится. Но аргумент против префиксного подчеркивания частично применим и к суффиксному подчеркиванию.
Но, как вы заметили, некоторое различие необходимо .
И, как я уже отмечал в другом месте, у меня тоже был очень плохой опыт с различением только регистра в C # - слишком легко перепутать имена и, следовательно, записать в частную переменную вместо свойства. Это имеет значение, если свойство проверяет или преобразует установленное значение.
По этой причине я также предпочитаю использовать какой-нибудь префикс в C #.
Я лично использую m_ для переменных-членов.
Хотя с автоматическими свойствами в VS 2010 я не нуждался ни в каком новом коде, который я написал в последнее время.
Хотя большая часть кода MS, кажется, использует m_ * для частных объявлений, я сохраняю себе символ и просто использую _name для частных членов. Мои правила:
Поскольку я работаю на C #, иметь имя параметра с тем же именем, что и у свойства с другим регистром, не проблема. Однако в VB это не сработает.
Единственный раз, когда я использую префикс, - это частное резервное хранилище для общедоступного свойства. В этих случаях имена в остальном идентичны, и большую часть времени единственное место, где я когда-либо буду ссылаться на имя с префиксом, находится внутри связанного с ним свойства. Когда я наконец смогу использовать автоматически реализуемые свойства с VB.Net, мне даже не нужно будет этого делать.
Я делаю это и на C # в тех случаях, когда я не могу просто использовать автоматически реализуемое свойство. Лучше использовать префикс _, чем изменять имена только по регистру.
Я делаю это так же, как и вы.
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
Но я думаю, что это дело вкуса.
Мы используем _ (подчеркивание) для префиксации имен наших переменных. Это коротко и по делу...
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