En su ejemplo de su toma de las propiedades como de sólo lectura, pero hay otros usos.
public string Text { get { return _text; } }
Si quieres hacer alguna operación internamente en el return_text
y luego devolverlo contra proeperty Text
se puede algo similar.
public string Text { get { return _text.ToUpper(); } }
Este es el campo Encapsulation
La encapsulación se refiere a veces como el primer pilar o principio de programación orientado a objetos. De acuerdo con el principio de encapsulación, una clase o estructura puede especificar qué tan accesible cada uno de sus miembros es para codificar fuera de la clase o estructura. Los métodos y las variables que no están destinados a ser utilizados desde fuera de la clase o el ensamblaje pueden ocultarse para limitar el potencial de errores de codificación o exploits maliciosos .
Consideremos el siguiente ejemplo:
// private field
private DateTime date;
// Public property exposes date field safely.
public DateTime Date
{
get
{
return date;
}
set
{
// Set some reasonable boundaries for likely birth dates.
if (value.Year > 1900 && value.Year <= DateTime.Today.Year)
{
date = value;
}
else
throw new ArgumentOutOfRangeException();
}
}
En este ejemplo hay un campo privado date
que se expone públicamente a través de la propiedad Date
. Ahora, si desea establecer el límite para la fecha, entonces puede ver la parte establecida de la propiedad.
Tenga en cuenta que debe tener * mucho, mucho cuidado * al exponer una matriz como propiedad de solo lectura de una clase. ** La referencia de matriz es de solo lectura pero los contenidos de la matriz no lo son. ** El usuario de esta clase puede mutar el contenido de la matriz a voluntad. Si eso no es deseable, en su lugar, devuelve un 'ReadOnlyCollection', no un 'string []'. –
Pensamientos detallados de Eric sobre este tema: http://blogs.msdn.com/b/ericlippert/archive/2008/09/22/arrays-considered-somewhat-harmful.aspx – SolutionYogi