proprietà utilizzo quando alcuni ehm .. proprietà è in rapida esecuzione (ad esempio ctrl.Color, ctrl.Text, ctrl.Width, DateTime.Now). ma se indica un processo, utilizzare il metodo (ad esempio str.GetHash(), machine.GetFqdn(), file.GetMd5()). così in un file md5, non si fanno una proprietà
questo enfatizzare il più when to use a method:
Il funzionamento è abbastanza costoso che si desidera comunicare all'utente che dovrebbero prendere in considerazione la memorizzazione nella cache del risultato.
si noti che DateTime di .NET.Ora, sebbene sia veloce così come una proprietà, è necessario che venga memorizzato nella cache quando viene chiamato più volte nel programma, anche l'uno vicino all'altro. hanno deciso di farne una proprietà, la proprietà ha la sensazione di currentness al suo interno, a differenza di quando si chiama un metodo, non ha la sensazione di istantness/currentness in esso. quindi è necessario tener conto del fatto che, anche quando si ottiene un valore e necessario essere memorizzati nella cache, ma se ha bisogno di sentire istante, utilizzare assolutamente la proprietà.
dopotutto, se qualcosa è veramente veloce e non sembra un'operazione costosa, deve avere un costrutto che possa trasmettere la sua solidità. Penso che questo sia il motivo per cui .NET è attraente (o qualsiasi linguaggio che abbia un costrutto di proprietà), non obbliga gli sviluppatori a usare il metodo quando puoi renderlo una proprietà, non obbliga gli sviluppatori a usare il metodo quando puoi fare un codice performante attorno agli operatori sovraccaricati, questa è la programmazione pragmatica al suo meglio
fonte
2009-12-06 04:37:45
Non si generano eccezioni? Cosa faresti se il valore impostato fosse un valore non valido, allora? Ho pensato che fosse una delle ragioni per usare le proprietà sui campi ... la possibilità di fare controlli sul valore prima di accettarlo. – Svish