Hola de nuevo!!, después de algunos meses de tener abandonado el blog me he propuesto en volverlo a levantar
las excusas y pretextos de porque no lo actualice salen sobrando así que espero estar un poco (un mucho) mas activo en el blog subiendo nuevamente tutoriales sobre MonoTouch y sobre las nuevas plataformas en las cuales el equipo de mono se encuentra trabajando tales como MonoDroid y MonoMac .
Y donde están mis modales “Feliz Año Viejo” (Si viejo porque ya estamos en el 2011 =P ). Ok vamos al punto.
En estos dias festivos tuve una pequeña discusión con cierta persona (cuyo nombre sera “Bob” por obvias razones) donde el me vio programando utilizando la palabra reservada “var” para declarar ciertas variables a lo cual Bob en su gran experiencia (que ya tiene programando un buen tiempo en c#) me dice:
Bob: Oye, porque utilizas “var” para declarar variables, eso hace tu código mas lento ya que le das mas carga al compilador, ademas de que tu código se hace mas difícil de leer, debes de declarar variables “Strongly Typed”
Este comentario desenlazó una muy enriquecedora platica a lo cual me lleva a darles los siguientes puntos:
La palabra reservada “var” como ya lo mencione, no es un tipo de dato. System.String si es un tipo de dato, int32, UInt32, float, decimal, object etc. Si son tipos de dato, pero “var” definitivamente no lo es. El tipo de dato es inferido al momento del compilado de la aplicación, este es inferido gracias a lo que se encuentra en la parte derecha de el simbolo de = como lo podemos ver en el siguiente ejemplo.
var variable = 10;
Es totalmente identico hacer lo siguiente:
int variable = 10;
En ambos casos la variable se hace “Strongly Typed” a una variable de tipo entero, así que si nosotros intentamos lo siguiente esto no va a compilar por nada del mundo:
var variable = 10; variable = "Quiero que seas Diez";
Así que siguiendo la logica, ninguno de los siguientes casos compilará:
var variable; //Este no compila obviamente porque no tiene de donde inferir el tipo de dato. var variable = null; //Tampoco compilará porque que tal si quisiéramos que variable fuera igual a 10
Dado la logica de arriba este siguiente ejemplo tampoco compilará:
int variable = null;
Una cosa en lo que si le doy la razón a Bob es que si usamos de manera exagerada la sentencia “var” en nuestro código si se reducirá la legibilidad de nuestro código de manera significativa, pero tambien esta el otro lado, “var” nos puede ayudar a reducir drasticamente lo escrito de código, ademas de aumentar como se lee el código, como podemos ver en el siguiente ejemplo:
var configuracion = new List<KeyValuePair<string, string>>(); List<KeyValuePair<string, string>> configuracion = new List<KeyValuePair<string, string>>();
En este ejemplo la palabra reservada “var” es opcional ya que es elección de nosotros lo programadores si la usamos o no. Tambien como lo mencione anteriormente hay veces que el uso de “var” es imposible de evitar, como lo es en el caso de linq:
var query = clientes.Select( c => new { Nombre = c.Nombre } );
//---------------------------------------------------------------
var query = from c in clientes
select new
{
Nombre = c.Nombre
};
Estos 2 últimos ejemplos son 2 formas de expresar una sentencia en LINQ, esto regresa un tipo “Anonimo”, pero no se confundan un tipo anonimo no significa que estemos utilizando variables “weakly typed”, Al contrario estamos utilizando variables “Strongly Typed” solo que le estamos dando el trabajo al compilador de que el cree el Tipo de dato necesario.
Espero que con esto quede mucho mas claro cuando usar “var” y hayan quedado claros algunos de los mitos y leyendas que circulan alrededor de el uso de esta palabra reservada.
Cualquier duda o comentario ya saben no duden en preguntar u opinar Saludos!!
Alex Soto

Categories
Tag Cloud
Blog RSS
Comments RSS
Last 50 Posts
Back
Void « Default
Life
Earth
Wind
Water
Fire
Light 
Hola Alex!!
Feliz Noticia la que nos das volviendo al blog. Eres un crack, oye seguiras haciento tutoriales de iphone con monotouch?? En el k podamos ver app k llamen a web services de mysql para utilizar app con bbdd??
Un abrazo Alex y sigue siempre adelante!!!
Hola Alex buen dia y gracias por los buenos deseos, pues ese es el plan, el volver a publicar mas articulos sobre MonoTouch, MonoDroid y MonoMac que es en lo que me eh estado enfocando todo el año.
Sobre tu pregunta al respecto de los webservices no me queda muy clara la duda, ya publique un post acerca de como llamar webservices desde el iphone y no ha cambiado la forma en todo este tiempo, o si quieres ver algo mas en especial pues hasmelo saber y veo que puedo armar
Saludos!!!
[...] This post was mentioned on Twitter by Alex Soto. Alex Soto said: Nueva entrada en mi blog (ya tenia rato sin postear) -> Para que sirve la keyword var en c#? Mitos Leyendas y Realidades http://t.co/6Xq8wor [...]
Hola Alex
Vuelvo a ser yo jejej nooo el post de mysql lo vi hace tiempo y muy bueno de verdad. Pero estoy mirando de hacer una app que me geolocalize y consulte mis alrededores en una bbdd de mysql en webservice y trabajar con views y tabs y por eso te comentaba si pondrias algun tuto de georeferencia y de views con tabs siempre relacionado con bbdd que creo que es la base.
Un abrazo Alex!!
Muy buena página , la pondré en favoritos. Necesito ahora en mi trabajo desarrollar aplicaciones para móviles y la verdad si lo hago desde .NET seria perfecto. He visto en la página de Monotouch que necesito MAC para poder programar ? desde windows no puedo ? Saludos.
PD: Alex Soto que tengas mucha suerte y que no se te bajen los ánimos la página es perfecta.