miércoles, 21 de mayo de 2008

C# es fácil (ii): Usos de var

En el post anterior de C# es fácil, hemos hablado un poco sobre los tipos anónimos. Ahora me gustaría comentaros algunas cosillas de la palabra clave var. Recordemos que var viene a significar: declara la variable del tipo que se corresponda a la expresión de la derecha de la asignación.

Lo que debes tener presente de var es que:

  1. Debes declarar e inicializar la variable. Es decir: var i; no compila ya que no hay expresión de la que inferir el tipo de la variable i. Recuerda que C# es un lenguaje fuertemente tipado.

  2. var se resuelve en tiempo de compilación, nunca de ejecución. Es decir si tengo:

    class Animal { }


    class Perro : Animal { }


    y entonces hago:

    Animal animal = new Perro();


    var perro = animal;


    la variable perro se declarará de tipo Animal.

  3. No puedes devolver var:

    static var foo()

    {

    return new { X = 10, Y = 20 };

    }


    Este código no compila, con el mensaje de error (The contextual keyword 'var' may only appear within a local variable declaration). Es una lástima no poder devolver var porque esto nos impide devolver (fácilmente) tipos anónimos entre métodos. De hecho, se considera que los tipos anónimos tienen un ámbito local.

  4. Declarar una variable usando var o usando el nombre de la clase que realmente se corresponde no tiene ninguna diferencia. El código MSIL generado por el compilador es el mismo en ambos casos, o sea que usar var es una decisión personal (excepto cuando hay tipos anónimos por en medio, que entonces debe usarse sí o sí).

Saludos!

1 comentario:

Jane B dijo...

I love C# language... very nice post...

asp net web services