¡Hola a todos!
Quisiera dar mi opinión al respecto, empezando por indicar que el nombre correcto de las mencionadas
variables de una clase es
campos.
Imaginemos que el nuevo miembro público TopX se declara como campo, y que algún desarrollador (que pudiera ser el mismo autor de esa clase) hace referencia a dicho campo tratándolo como variable:
@Objeto.TopX
ProcGetTop (Objeto.TopX)
Cuando el autor de la clase decida cambiar el campo TopX por propiedad (por el surgimiento de la necesidad de implementarle un método
Get de lectura o
Set de escritura; o para que pueda ser vista en el inspector de objetos, cambiando su visibilidad a
Published; etc.), el código que hace referencia al campo como variable ya no podría compilar y tendría que ser modificado.
Siento que es cuestión de cada caso en particular. Después de todo las reglas y
contratos de la POO no son perfectos y les aparecen muchos
huecos legales cuando se aterrizan en un lenguaje
. En el caso de Patroclus02, quizá baste una leyenda «
{ No utilizar estos campos como variables, podrían ser convertidos a propiedades en futuras versiones }», aunque ciertamente la norma general más segura sería declararlos como propiedades.
Un abrazo declarado.
Al González.