Nada

domingo, 24 de febrero de 2008

Propiedades Automáticas en C#2008

C# 2008 incorpora varias mejoras del lenguaje. Por lo que he visto, ninguna es tan radical ni tan últil como los genéricos introducidos en C# 2005, pero algunas sí que son interesantes.

La posibilidad de definir Propiedades Automáticas es una, al menos, interesante, por no decir curiosa. Se trata de la posibilidad de dejarle al compilador la tarea de generar el código para manejar la asignación (set) y la recuperación (get) de un campo privado asociado a la propiedad.

Me explico con un ejemplo. En C# 2005 teníamos que declarar una propiedad más o menos así:

class x
{
protected int _myprop;
public int myprop
{
get {return _myprop;}
set {_myprop = value;}
}
}

Esto puede quedar reducido a una sola línea:

class x
{
public int myprop {get; set;}
}


Yo, la verdad, no tengo muy clara la utilidad de esta construcción en C#. La idea de usar propiedades es ofrecer cierto nivel de abstracción mediante ocultamiento de los miembros de la clase que no son parte de la interfaz, y tiene mucho sentido cuando una propiedad afecta el comportamiento de otras, pero en el contexto, la única diferencia es que el miembro se expondría como property y no como variable.

Las propiedades automáticas están sumamente limitadas: no se tiene acceso al miembro privado subyacente, y además es requerido implementar toda la propiedad como automática (no se puede implementar el set automático y el get por código, o viceversa).

1 comentario:

Unknown dijo...

Oiga disculpe la ignorancia, pero en si cual es la utilidad de esas propiedades get y set, para que las puedo explotar, acaso se pueden usar desde una clase externa y validar los datos ingresados en un formulario aparte.
La verdad estoy muy confundido si me pudiera explicar estaria muy agradecido.