En Visual Studio 2008 Team System, acabo de ejecutar Code Analysis (del menú Analizar) en uno de mis proyectos de C#. Una de las advertencias producidas fue el siguiente:C# campo protegido a privado, agregar propiedad, ¿por qué?
Microsoft.Design: Debido a que el campo 'Connection._domain' es visible fuera de su tipo que se declara, cambiar su accesibilidad a privada y añadir una propiedad, con la accesibilidad mismo que el campo tiene actualmente, para proporcionar acceso a ella.
Se hace referencia a la siguiente campo:
public abstract class Connection
{
protected string _domain;
}
No entiendo el razonamiento detrás de la sugerencia. Esto es lo que creo que quiere que haga:
public abstract class Connection
{
private string _domain;
protected string Domain { get { return _domain; } set { _domain = value; } }
}
Dos preguntas:
- ¿He entendido bien lo que la sugerencia quiere que haga, código-sabio?
- ¿Por qué quiere que haga esto?
Vea también http://stackoverflow.com/questions/1410645/are-public-fields-ever-ok, http://stackoverflow.com/questions/480627/why-wont-anyone-accept-public-fields -in-c, http://stackoverflow.com/questions/1277572/should-i-use-public-properties-and-private-fields-or-public-fields-for-data y muchas más (busque en 'public campos'). Todos hablan de los campos públicos, pero generalmente también se aplican a los campos protegidos. –