Вызов метода Public / Private Member или Best Practices - C # .NET - PullRequest
6 голосов
/ 26 мая 2010

Какова наилучшая практика для вызова элементов / полей из закрытого метода и открытого метода? Должен ли частный метод всегда вызывать закрытые поля или они должны вызывать открытые члены?

private string _name;
public string Name
{ 
   get {return _name; }
   set { _name = value; }
}

public void DoSomething()
{
   _doSomething();
}


private void _doSomething()
{
   _name.ToLower();
}

Ответы [ 2 ]

11 голосов
/ 26 мая 2010

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

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

Или, говоря одним словом: инкапсуляция .

1 голос
/ 26 мая 2010

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

...