Buena pregunta. Aunque una propiedad es poco más que azúcar sintáctica para un par de métodos get/set, se deben usar dos en diferentes momentos.
En general, se debe utilizar un captador de estilo propiedad cuando:
- El valor a ser devuelto representa los datos de campo como (generalmente primitivas tipos/valor, sino una referencia a otro objeto de dominio también está muy bien)
- el cálculo, en su caso, para producir que el valor es relativamente barato/libre de efectos secundarios
- Conseguir el mismo valor dos veces producirá el mismo valor dado las mismas entradas
Por lo general, debe usar un método getter cuando:
- El objeto devuelto se crea con ese propósito (p. métodos de fábrica)
- Evaluar el valor devuelto requiere efectos secundarios (por ejemplo, tocar un sistema de archivos, base de datos o cambiar otros valores)
- Obtener el tipo de resultado dos veces generará dos resultados distintos (es decir, dos flujos, conexiones de base de datos, etc.) .
En una oración, si conceptualmente hablando el valor necesario es algo que el objeto TIENE, use una propiedad. Si el valor necesario es el resultado de algo que el objeto HACE, use un método.
Eso indica que es malo tener propiedades que devuelven matrices. ¿Alguien puede explicar * por qué * eso es malo? –
Porque el contenido de la matriz puede cambiarse a cualquier valor arbitrario por cualquiera que pueda obtener una referencia: http://blogs.msdn.com/b/ericlippert/archive/2008/09/22/arrays-considered- algo-harm.aspx – thecoop
Si devuelve una matriz desde una propiedad, realmente está devolviendo un puntero a esa matriz. Esto significa que de repente lo ha hecho para que otro código pueda modificar su matriz, incluso si no proporciona un método setter. Entonces, el contenido de tu matriz podría cambiarse sin que lo sepas. – GendoIkari