Дизайн класса - переменные-члены и свойства - объявление - PullRequest
0 голосов
/ 28 апреля 2011

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

(1) Объявите переменные-члены класса в верхней части объявления класса, затем в отдельном разделе объявите свойства, которые получают / устанавливают эти переменные-члены.

Class MyClass
{
  String firstName;
  String lastName;

  public string FirstName
  {
    get { return firstName; }
    set { firstName = value; }
  }

  public string LastName
  {
    get { return lastName; }
    set { lastName = value; }
  }

}

(2) Объявите переменные-члены класса в верхней части класса и определите свойства get / set прямо под объявлением переменной.

Class MyClass
{
  String firstName;
  public string FirstName
  {
    get { return firstName; }
    set { firstName = value; }
  }

  String lastName;
  public string LastName
  {
    get { return lastName; }
    set { lastName = value; }
  }

}

Хотя это может быть вопросом личного или личного предпочтения, по которому люди стремятся следовать, и, если возможно, укажите причину, почему. Спасибо.

Ответы [ 3 ]

2 голосов
/ 28 апреля 2011

Если вы ничего не делаете в свойстве get / sets, используйте авто-свойства, вы всегда можете изменить их позже, если вам нужно:

public string LastName {get;set;}

Лично мне нравится размещать все свои переменные-члены в нижней части класса, следуя принципу, что вещи, которые интересуют клиентов (то есть общедоступные вещи), должны располагаться ближе к началу файла. Многие люди, кажется, предпочитают иметь членов наверху, но это всегда казалось мне немного отсталым:)

0 голосов
/ 28 апреля 2011

Хотя это зависит от личных предпочтений, я предпочитаю вариант 1, но с закрытыми членами внизу. Обоснование: API важнее реализации:

class MyClass
{
  public string FirstName
  {
    get { return firstName; }
    set { firstName = value; }
  }

  public string LastName
  {
    get { return lastName; }
    set { lastName = value; }
  }

  String firstName;
  String lastName;
}
0 голосов
/ 28 апреля 2011

Я предпочитаю вариант № 1, а затем окружаю поля в области полей, свойства в области свойств, конструкторы, методы и т. Д. И т. Д. Эти области, конечно, позволяют свернуть части кода для дальнейшего улучшения читабельности (если вы только хотите посмотреть на конструкторы например).

Просто личное предпочтение, но делает занятия хорошо организованными.

...