La idea básica es que un "campo" (variable de nivel de instancia) que se declara protegido es probablemente más visible de lo que debe ser, y menos "protegido" de lo que le gustaría. No hay un modificador de acceso en C / C ++ / Java / C # que sea equivalente a "accesible solo por clases secundarias dentro del mismo ensamblaje", lo que le otorga la posibilidad de definir sus propios hijos que pueden acceder al campo en su ensamblaje, pero no permitir que los niños creados en otras asambleas tengan el mismo acceso; C # tiene modificadores internos y protegidos, pero su combinación hace que el acceso sea "interno o protegido", no "interno y protegido". Por lo tanto, un campo que está protegido es accesible para cualquier niño, ya sea que usted escribió que el niño o alguien más lo hizo. Protegido es, por lo tanto, una puerta abierta a un hacker.
Además, los campos por su definición no tienen prácticamente ninguna validación inherente para cambiarlos. en C # puede hacer uno solo de lectura, lo que hace que los tipos de valor sean constantes y los tipos de referencia no puedan reinicializarse (pero aún así son muy mutables), pero eso es todo. Como tal, incluso protegidos, sus hijos (en los que no puede confiar) tienen acceso a este campo y pueden configurarlo como algo no válido, lo que hace que el estado del objeto sea inconsistente (algo que debe evitarse).
La forma aceptada de trabajar con los campos es hacerlos privados y acceder a ellos con una propiedad y / o un método de obtención y establecimiento. Si todos los consumidores de la clase necesitan el valor, haga que el captador (al menos) sea público. Si solo los niños lo necesitan, proteja al receptor.
Otro enfoque que responde a la pregunta es preguntarse; ¿Por qué el código en un método secundario necesita la capacidad de modificar mis datos de estado directamente? ¿Qué dice eso de ese código? Ese es el argumento de "distancia vertical" en su cara. Si hay un código en un hijo que debe alterar directamente el estado principal, entonces tal vez ese código debería pertenecer al padre en primer lugar.