Mi opinión es que si nos fijamos en las palabras - "propiedad" en comparación con "método". La palabra "propiedad" implica que "este es un valor inherente al objeto, como el color, tamaño, propietario ... llamar a una propiedad implicaría una operación relativamente simple para devolver ese valor. O, si no es de solo lectura, propiedad, configurar la propiedad también debe ser una operación relativamente simple (y de bajo costo)
Por otro lado, un "método" implica "Tengo que hacer un trabajo real para realizar esta tarea que me piden "- mientras que un método bien puede devolver un valor (aunque sea para decir" Sí, lo hice "), está haciendo un montón de cosas para obtener ese valor para mí, y al hacerlo, hará que otro operaciones asociadas con obtener ese valor.
Por lo tanto, es principalmente semántica - una propiedad de solo lectura podría implementarse satisfactoriamente como método - pero Me gustaría ver qué implica devolver ese valor, y las implicaciones que cada uno enviaría a la persona que recupera esa propiedad o llama a ese método.
Esa es una diferencia de comportamiento interesante que se puede identificar usando la palabra clave const en algunos otros idiomas. Piensa como "se supone" y "debería" son lugares para esconder la religión. Una definición explícita permite estándares en lugar de convenciones. –
'DateTime.Now' es excelente como una propiedad. Aunque su valor cambia todo el tiempo, esto no tiene ninguna influencia (ya que 'DateTime's es inmutable y la propiedad se comparte!) Y además, no depende de la llamada (como un contador o un número aleatorio), pero en alguna otra variante fuera del programa –
Oye, no me votes por ello: busca al tipo que escribió el artículo. Además, una Propiedad no debería cambiarse a sí misma; si lo hace, ya no es una Propiedad ... es un Método – Hugoware