Ver Mensaje Individual
  #2 (permalink)  
Antiguo 03/09/2015, 12:32
agleiva
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 3 meses
Puntos: 52
Respuesta: [C#] [Consulta] ¿Variables var?

Como te había comentado, el keyword "var" en C# es una característica opcional y queda a "gusto" del desarrollador o equipo la opción de usarlo o no.

Personalmente, yo uso var en todos lados, sobre todo cuando es inmediatamente obvio el tipo de la variable, como en el caso de instanciar usando new():

Código C#:
Ver original
  1. var dict = new Dictionary<string, object>();

es mucho menos tedioso que repetir el tipo 2 veces:

Código C#:
Ver original
  1. Dictionary<string, object> dict = new Dictionary<string, object>();

ámbas instrucciones hacen exactamente lo mismo, pero la primera es mas breve y menos tediosa, tanto para leer como para escribir.

Otro caso donde prefiero muchísimo usar var es cuando realmente no me interesa cuál es el tipo de objeto que me devuelve algo:

Código C#:
Ver original
  1. var texto = "Hola Mundo, Este Texto Tiene Muchas Letras";
  2.  
  3. var palabrasPorLetra =
  4.         texto.Split(' ')
  5.              .GroupBy(x => x[0]);

en este caso, la variable palabrasPorLetra es de tipo
Código C#:
Ver original
  1. IEnumerable<IGrouping<Char,string>>
, pero eso me tiene totalmente sin cuidado ya que lo importante es que estoy agrupando las palabras por el primer caracter, y cualquiera que conozca C# entiende eso sin necesidad de ver el tipo de la variable.

En los casos donde resulta más discutible el uso de "var" es cuando no es tan obvio lo que devuelve un método:

Código C#:
Ver original
  1. var resultado = ProcesarDatos(datos);

qué tipo de objeto es resultado? puede resultar confuso para alguien que no conoce bien el código. Uno podría alegar que en realidad lo que hay que hacer es cambiar el nombre del método ProcesarDatos() por algo que indique qué cosa devuelve ese método, pero ahí entramos en el terreno de las opiniones y preferencias personales.

Lo divertido de los "coding styles" o estilos para escribir código es que cada persona tiene una opinión diferente, y todos tienen razón, e incluso si uno no la tiene, no importa, es cuestión de gustos.
Claro que todo esto es posible en lenguajes ricos y modernos como C# o F#, pero hay OTROS... lenguajes que son horrendos y no tienen ninguna de estas ventajas (por ejemplo uno que empieza con "J" y termina con "ava"), y leer y escribir en esos lenguajes resulta muy tedioso y estresante.

Última edición por agleiva; 03/09/2015 a las 12:52