Le variabili sono variabili, ossia porzioni di memoria che ti permettono di memorizzare qualcosa. Le proprietà si usano per definire delle proprietà o impostazioni per qualche particolare classe/controllo. Nessuno ti vieta di fare tutto con le proprietà, ma è uno spreco inutile oltre che essere concettualmente sbagliato.
Ivan_J_147 ha scritto:ok, se avessi bisogno di risultati "composti", o se quando assegno dei valori alle variabili avessi bisogno di modificare di conseguenza altre variabili, userei delle proprietà.
Non è proprio così, per fare queste cose ci sono i metodi. Di solito le proprietà si usano nei controlli, mentre ci possono essere casi in cui li utilizzi nelle classi; io ad esempio qualche tempo fa ho scritto una libreria per un protocollo nella quale ho dichiarato una proprietà Connected in sola lettura, che mi ritornava lo stato della connessione che variava in base a diversi parametri. Oppure lo si può usare, adesso che c'è il problema dell'UAC, per determinare se l'applicazione sta girando con privilegi amministrativi.
Per farti capire meglio, pensa di doverti creare un controllo che contiene un bottone e una casella di testo e vuoi esporre un metodo per abilitare/disabilitare il controllo. Se lo fai con un metodo, devi disporre un metodo parametrizzato oppure due metodi distinti, uno per abilitare e uno per disabilitare i controlli. Se usi la proprietà, per abilitare il controllo avrai a disposizione il classico Controllo.Enabled = true (sempre che la proprietà tu l'abbia chiamata Enabled), che è esattamente quello che hai per la maggior parte dei controlli. Se invece nell'evento click del pulsante devi far fare qualcosa, non ha senso usare delle proprietà ma i metodi.