2008-10-03 6 views
4

Как вид следования this question about prefixes, я согласен с большинством людей в теме, что префиксы плохие. Но что, если вы используете геттеры и сеттеры? Затем вам нужно различать общедоступное имя получателя из частной хранимой переменной. Обычно я использую символ подчеркивания, но есть ли лучший способ?Если вы используете геттеры и сеттеры, как следует называть переменные частного члена?

ответ

6

Это совершенно субъективный вопрос. Нет «лучшего» способа.

Один из способов:

private int _x; 
public get x():int { return _x; } 
public set x(int val):void { _x = val; } 

Еще есть:

private int x; 
public get X():int { return x; } 
public set X(int val):void { x = val; } 

Ни правильный ответ. У каждого есть преимущества и недостатки стиля. Выберите тот, который вам больше нравится, и примените его последовательно.

1

В случае чувствительного языка я просто использую:

private int myValue; 

public int MyValue 
{ 
    get { return myValue; } 
} 

В противном случае я хотел бы использовать подчеркивание

Private _myValue As Integer 

Public ReadOnly Property MyValue As Integer 
    Get 
     Return _myValue 
    End Get 
End Property 
+0

, который выглядит хорошо, но в ActionScript (мой основной язык) вы никогда не запускаете функцию или переменную с большой буквы, если только это не имя класса или конструктор (вы можете просто не использовать). – Iain 2008-10-03 23:10:13

+0

В этом случае я, вероятно, перейду с _myValue в качестве переменной и myValue в качестве имени свойства. – 2008-10-03 23:12:11

1

Есть почти так же много различных способов сделать это, так как есть программисты делают это, но некоторые из наиболее популярных способов включают (для имущества Foo):

  • mF оо
  • m_foo
  • _foo
  • Foo
3

В Java есть this.foo в питоне есть self.foo и другие языки имеют подобные вещи, так что я не вижу необходимости в именовании что-то особенным образом, когда я уже могу использовать конструкцию языка. В этом же контексте хорошие IDE и редакторы понимают переменные-члены и выделяют их особым образом, поэтому вы можете увидеть это без использования специальных имен.

6

Мне нравится прикрепить поля с подчеркиванием, как упомянули другие.

private int _x; 

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

  1. Это означает, что вы не должны писать «this.x = x» для назначений (особенно в сеттерах и конструкторах).
  2. Он отличает ваши поля от ваших локальных переменных/аргументов. Важно сделать это: поля сложнее обрабатывать, чем местные, поскольку их масштаб шире/срок службы больше. Добавление дополнительного символа - это немного предупреждающий знак для кодеров.
  3. В некоторых IDE подчеркивание заставит автозаполнение сортировать поля в верхней части списка предложений. Это упрощает просмотр всех полей для класса в одном блоке. Это, в свою очередь, может быть полезно; на больших классах вы не сможете увидеть поля (обычно определяемые в верхней части класса) на том же экране, что и код, над которым вы работаете. Сортировка их в верхней части дает удобную ссылку.

(Эти соглашения являются для Java, но существуют подобные им для других языков)

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

1

I как запись "this.x = x". Мне это очень ясно. Кроме того, при использовании Eclipse вы можете автоматически генерировать ваши геттеры/сеттеры таким образом.

 Смежные вопросы

  • Нет связанных вопросов^_^