Alcuni motivi:
- il databinding non funziona sulle variabili pubbliche, ma solo sulle property
- se si fa uso di reflection (anche indirettamente: l'IDE lo fa, gli OR/M lo fanno e presto o tardi lo farai anche direttamente :P), i due membri sono visti in maniera differente
- si si fa refactoring di un progetto per adattarlo a nuove esigenze, è più facile intervenire sulle property
- nelle property si può inserire della logica, ad esempio "muovere" dei flag quando una property viene scritta, fare lazy loading e via di seguito
- non costa nulla (in C# poi il get-set si può fare in linea.. con VB uso un refactor, dalla 10 sarà possibile dichiararle in linea anche su VB)
- puoi decorare una property con attributi
Quindi.. non essere pigro, vai con le property!
tK