2010-05-26 9 views
6

¿Cuál es la mejor práctica para llamar miembros/campos desde un método privado y un método público? ¿Debería el método privado llamar siempre a campos privados o deberían llamar a los miembros públicos?Método para llamar a miembros o métodos públicos/privados. Buenas prácticas: C# .NET

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

public void DoSomething() 
{ 
    _doSomething(); 
} 


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

También vea http://stackoverflow.com/questions/3310186/are-here-all-reasons-to-use-private-properties-in-c – nawfal

Respuesta

11

Yo prefiero tener todo el código de ir a través de la interfaz pública, simplemente para reducir el número de lugares en el código que tiene acceso el campo respaldo real. Dos razones son

  • Simplifica la depuración; si tiene un problema en el que se cambia un valor o devuelve un valor inesperado, puede establecer un punto de interrupción dentro del captador o definidor de propiedad y atrapar fácilmente cualquier acceso al valor.
  • Reduce el impacto de los cambios, puede realizar cambios en el campo y afectará muy pocos lugares en el código directamente.

O, para decirlo en una sola palabra: encapsulación.

+0

+ lotes para "encapsulación". Como Steve McConnell lo puso en Code Complete, sin encapsulación, tampoco tiene abstracción. –

1

En algunos casos, su propiedad pública puede contener cierta lógica que necesita y en ese caso siempre usará la propiedad en lugar de la variable local, si está seguro de que desea usar la variable miembro privada y no expondrá esa funcionalidad para el mundo exterior, hace que ese método particular sea privado.

Cuestiones relacionadas