C#. Propiedades

marzo 2, 2009 at 7:00 pm Deja un comentario

Muchas veces nos puede interesar almacenar datos para después poder usarlos, y como vimos en el capitulo anterior, para esto usamos las variables. Pero, ¿Qué pasa si queremos aplicar algún tipo de lógica a estas variables? Me explico, imagina que quieres que el número máximo de vidas en tu juego sea cinco, y no quieres que nunca se puedan tener más de cinco vidas. Si tenemos una variable que almacene el número de vidas tendríamos algo como esto:

int vidas;


Ahora cada vez que algún evento del juego sume una vida al total que ya tenemos, tendríamos que ir comprobando que no tengamos ya cinco vidas:

if(vidas < 5) vidas++;
&#91;/code&#93;
Esto lo tendremos que comprobar cada vez que queremos sumar una vida, es posible que en alguno de los eventos que suma una vida se nos olvide la comprobación, además de que es un poco “engorroso” tener que picar el código cada vez.
Para esto tenemos las propiedades, ya que entre otras cosas nos permite tener una lógica antes de obtener o asignar un valor.
Otras cosas que son de gran utilidad en las propiedades es que podemos hacerlas de lectura/escritura, solo lectura o solo escritura, y son perfectas para exponer de manera pública los valores de una clase.
Las propiedades se declaran dentro del bloque de clase especificando el nivel de acceso del campo, seguido por el tipo de la propiedad, seguido por el nombre de la propiedad y, a continuación, un bloque de código que declara el descriptor de acceso <strong>get</strong> y/o el descriptor de acceso <strong>set</strong>.
Vamos a ver un pequeño ejemplo para que lo veas claro:
<pre>
Private Uint16 _vidas; //variable privada
Public Uint16 vidas
{
get{return _vidas;} set{_vidas = value;}
}

El nivel de acceso es Public, por lo que todas las clases podrán acceder a esta propiedad, el tipo es UInt16, porque vamos a almacenar números pequeños sin decimales y positivos, y después tenemos los bloques de código get y set. El bloque de código get sirve para acceder al valor y el bloque de código set sirve para asignar el valor, si queremos hacer la propiedad solo de lectura pondremos solo el get y si la queremos hacer solo de escritura solo pondremos el set. El parámetro value está implícito en la propiedad y contendrá el valor que le asignemos, por lo tanto, si hacemos vidas = 1, el parámetro value vale uno.
Sigamos con el ejemplo del principio, lo que haríamos sería asignar la lógica a la propiedad de este modo:

Public Uint16 vidas
{
get{return _vidas;}
set
{
if(vidas < 5) _vidas++;
}
}
[/code]

Por lo tanto, aunque sumemos todas las veces del mundo las vidas, si ya se tienen cinco, estas no variaran.
Poco a poco iras viendo que las propiedades son algo muy utilizado en la programación de tus juegos, y si observas los códigos ya publicados podrás ver que se utilizan mucho, sobre todo para exponer valores a lo largo de las distintas clases del juego.
Ver ejemplos de propiedades.

Anuncios

Entry filed under: C#. Tags: , , , , , .

Exit 2 en LIVE Arcade Guitar Hero World Tour – B.Y.O.B 100% en experto

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Trackback this post  |  Subscribe to the comments via RSS Feed


Entradas recientes

Categorías

marzo 2009
L M X J V S D
« Feb   Abr »
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

Feeds

Visitas totales:

  • 92,139 visitas
wordpress stats

A %d blogueros les gusta esto: