Почему некоторые поля являются открытыми, а некоторые имеют свойства? - PullRequest
1 голос
/ 25 февраля 2011

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

class A
{
  public bool B;

  private bool c
  public bool C
  {
    get
    {
      return c 
     }
    set
    {
      c=value;
     }

  }
}

Ответы [ 2 ]

6 голосов
/ 25 февраля 2011

Использование открытых полей - это почти всегда плохая идея. Просто используйте свойства .

Вы также должны знать о автоматически реализуемых свойствах (введенных в C # 3), которые позволяют вашему свойству C записываться как:

public bool C { get; set; }
0 голосов
/ 25 февраля 2011

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

Вы можете полностью исключить использование приватных полей, используя автоматически реализованные свойства.

Public int MyProperty {get; set;}

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

Public int MyProperty {get; private set;}
...