Hola ¿Qué tal?
Ahora que se ha liberado el beta 1 de Orcas, es momento de empezar a hablar de las nuevas características del lenguaje, claro que aun pueden tener cambios sin embargo es bueno ir viendo ya lo que trae. Una de las nuevas características del lenguaje es lo referente a la declaración de variables. La declaración de variables en C# 2.0 y anteriores es simple, pues es únicamente un par de palabras ordenadas poniendo en primer lugar el tipo de dato y en seguida el nombre de la variable. Los nombres de las variables siguen ciertas reglas, entre estas está la restricción del uso de números como inicio del nombre de la variable, se restringe el uso de caracteres reservados para el lenguaje y solo se permite el uso del guión bajo, acentos, letras y números. Cabe hacer notar que la eñe [ñ] es permitida como parte del nombre de la variable sin problemas, así que si es necesario utilizar ñ para declarar variables como "año", "tamaño" se puede usar sin problemas. Un ejemplo de la declaración de variables como los conocemos ahora es:
int cantidad;
En el código anterior vemos una declaración típica de una variable, donde después deberemos inicializarla para poder utilizar su valor, sin embargo, contamos con los inicializadores para realizar esta labor, de donde podemos declarar una variable e inicializarla al mismo tiempo con un valor del mismo tipo de dato del que estamos utilizando en la declaración, esto es para el ejemplo anterior, un entero "int", podemos entonces declarar e inicializar la variable de esta manera:
int cantidad = 10;
Las declaraciones implícitas tienen sentido en el tipo de código, para utilizarlas temporalmente en el flujo del código solamente, no para utilizarlas como variables de propiedades o variables que se iniciarán posteriormente a la declaración. Tienen ciertas reglas, muy simples por cierto.
La primera es que deben ser declaradas con la palabra clave var en lugar del tipo de dato. Sobre esta palabra, utilizada como en javascript aunque no es de la misma naturaleza del todo y tampoco implica una variable similar al tipo Variant del antiguo Visual Basic. En el primer caso, no es como la variable var de javascript pues aunque indica que la variable no tiene un tipo definido explícitamente no significa que no tenga tipo, pues al tomar el tipo inicial dado implícitamente no cambiaran de tipo después durante la ejecución de código como puede suceder en Javascript. En el segundo caso, aunque no se defina un tipo de dato explícitamente no se comporta como Variant ya que el tipo es asignado de manera implícita y no se puede asignar valores de un tipo incongruente al que ha tomado de manera implícita.
var
La segunda es que debe haber una inicialización de la misma manera que se utilizan los inicializadores, esto es, que debe asignársele un valor al momento de declarar la variable. Al definir un valor de inicio la variable tomará el tipo de dato congruente con el valor que se le ha asignado, con lo que en adelante se asumirá el tipo de dato se ha tomado en la inicialización de la variable. No se puede declarara una variable de tipo implícito con la palabra "var" sin una asignación al momento de hacerlo, esto es, la declaración simple con "var" no está permitida como en el caso de las declaraciones explicitas que pueden definir una variable y asignarles valores posteriormente. Así que, al momento de declarar una variable con "var" se deberá inicializar con un valor para que de esta manera se tome el tipo de dato de manera implícita y congruente con el valor que se ha asignado.
var cantidad = 10;
La tercera se refiere a que la expresión del inicializador en la declaración no debe ser null o dar por resultado null en tiempo de compilación.
El tipo de la variable se infiere por la expresión del inicializador, por lo que estas reglas son necesarias para definir el tipo de la variable declarado implícitamente.
Bueno, pues eso es todo por el momento. Creo que hablaré de lo referente a Extensiones de Métodos en una próxima oportunidad, ya que es una de las nuevas características de C#.
Espero que les sea de utilidad.
Saludos…
Octavio Telis