Solo hay que mirar el mismo nombre ... "Propiedad". Qué significa eso? El diccionario lo define de muchas maneras, pero en este caso "un atributo esencial o distintivo o la calidad de una cosa" encaja mejor.
Piensa en el propósito de la acción. ¿Estás, de hecho, alterando o recuperando "un atributo esencial o distintivo"? En su ejemplo, está usando una función para establecer una propiedad de un cuadro de texto. Eso parece un poco tonto, ¿no?
Las propiedades son realmente funciones. Todos compilan hasta getXXX() y setXXX(). Simplemente los oculta en azúcar sintáctico, pero es el azúcar el que proporciona un significado semántico al proceso.
Piensa en propiedades como atributos. Un auto tiene muchos atributos. Color, MPG, Modelo, etc. No todas las propiedades son variables, algunas son calculables.
Mientras tanto, un Método es una acción. GetColor debería ser una propiedad. GetFile() debería ser una función. Otra regla general es que, si no cambia el estado del objeto, entonces debería ser una función. Por ejemplo, CalculatePiToNthDigit (n) debería ser una función, porque en realidad no está cambiando el estado del objeto Math al que está conectado.
Esta es tal vez divagando un poco, pero que realmente se reduce a decidir cuáles son sus objetos son y lo que representan. Si no puede averiguar si debe ser una propiedad o función, tal vez no importe cuál.
-1 esta pregunta se ha realizado y respondido antes: http://stackoverflow.com/questions/164527/exposing-member-objects-as-properties-or-methods-in-net – Element
El método/campo/propiedad los pros y los contras pueden generar largos debates; un uso general para propiedades: cuando quiere campos privados/protegidos pero al mismo tiempo quiere exponerlos. Otro uso es tener no solo enunciados sino también expresiones (acciones si lo desea) incluso verificaciones 'if() '(según MSDN). Pero esto es complicado ya que el usuario no siempre conoce el costo de procesamiento detrás del acceso a una variable (propiedad) (es decir, el código no está disponible) y por razones de rigor uno debería comparar la propiedad. Ah, y una "bonificación" no puede usar punteros con propiedades. – mireazma