Posted by: carloslone | January 11, 2008

Nuevas Características de C# 3

Estimados Amig@s, comenzamos el año con una serie de posts que van aclarar algunos aspectos de las nuevas características del .net framework 3.5, específicamente características de C#3 y VB.NET 9.0.

Abriremos esta serie de post con características de C#3

Inferencia de Tipos (Type Inference):

C# 3 tiene una nueva característica denominada Inferencia de tipos, la cual será muy útil sobre todo al momento de aprovechar las nuevas características del lenguaje de programación. Comencemos describiendo ¿Que es la inferencia de tipos?, básicamente consiste en la capacidad de poder de definir variables sin la necesidad de tener que definir su tipo, en otras palabras preserva la seguridad de tipo (type safe) permitiéndome escribir código de una forma más sencilla, al utilizar las variables sin preocuparnos mucho acerca de su tipo, dejándole al compilador la tarea de determinar el tipo correcto de la variable infiriéndolo de la expresión a la cual la variable ha sido asignada.

Esto es una excelente novedad, sin embargo también existen quienes se preocupan de esta característica, argumentando que esto permitirá escribir código mas relajado y menos estricto. En mi opinión, la clave se encuentra en saber utilizar de manera correcta las cosas. Ahora veamos a continuación como utilizar esta característica en nuestro código:

Codigo1

C#3 ofrece la capacidad de la inferencia de tipo por medio del uso de la palabra clave “var” en vez de un tipo especifico. Esto puede verse como utilizar una variable de tipo object, pero en realidad no es lo mismo. Si vemos el código anterior, la variable b necesita de boxing al momento de ser asignada y luego unboxing al momento de querer asignar el valor a otra variable.

Cuando utilizamos la palabra clave “var”, el compilador se encargara de inferir por nosotros el tipo a partir de la expresión que utilizamos para inicializar nuestra variable, esto quiere decir que si escribimos:

int a = 2;
var b = 2;

será totalmente equivalente a escribir:

int a = 2;
int b = 2;

Reglas para el correcto uso de la inferencia de tipos

Para poder utilizar esta característica de una forma correcta, debemos seguir algunas reglas simples: la utilización de la palabra clave “var” solo es permitida para variables locales, pero no para parametros o datos miembro. Veamos a continuación un ejemplo del correcto uso de “var”:

Codigo2

Una consideración importante del código anterior es el uso de “default”, este sirve para poder inicializar una variable un valor nulo tipado, es decir la asignación ” var p = default(string) “, tendrá como resultado que el tipo inferido es un string y su valor inicial es null, esto es importante por que a veces necesitamos inicializar nuestras variables de esta manera.

veamos algunos ejemplos del uso incorrecto de “var”:

Codigo3

Bueno amigos, esta es una breve introducción al tema “inferencia de tipos”, espero que les halla aclarado y cualquier duda la sección de comentarios esta abierta a preguntas o comentarios.

Saludos,

Carlos A. Lone


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Categories

%d bloggers like this: