Pregunta

  

Posibles duplicados:
   ¿Qué usar: var o tipo de nombre de objeto?
   Uso de la palabra clave var en C #
   ¿Cuál es el punto de la palabra clave var?
   ¿Debo siempre favorece variables locales implícitamente escritas en C # 3.0?

Acabo de instalar una versión de prueba de ReSharper para evaluarla en mi empresa. Una cosa que he notado es que está sugiriendo que cambie lo siguiente (ejemplo inventado):

string s = "";

a

var s = "";

¿Es una buena práctica usar la palabra clave var en lugar de usar el tipo de objeto al declarar variables? ¿Qué ventajas da? Para el contexto, soy un antiguo desarrollador de Java que acaba de hacer la transición a los trabajos de .Net.

¿Fue útil?

Solución

Creo que está bien usar var donde hace que el código sea más fácil de leer, lo que para mí significaría que el tipo que var está reemplazando debe ser completamente obvio.

Por ejemplo, este sería un buen uso de var (ejemplo creado):

var thing = new Dictionary<int, KeyValuePair<string, int>>();

Sin embargo, esto sería un mal uso de var :

var thing = GetThingFromDatabase();

Otros consejos

Me resulta útil en algunos casos donde la declaración de tipo es muy larga, por ejemplo:

Dictionary<int, string> item = new Dictionary<int, string>();

se convierte en

var item = new Dictionary<int, string>();

Es lo mismo porque al usar la palabra clave var, la variable se escribe de forma implícita y el compilador infiere el tipo en el momento de la compilación. Prefiero especificar el tipo en lugar de usar var en la mayoría de los casos, así que cambio la configuración de mi comparticador.

Como lo recuerdo, Resharper solo dice que podría escribirse de esta manera. No dice que debas.

Un montón de sugerencias son solo sugerencias que giré la primera vez que las vi ... Ese es uno de ellos.

Otro fue que dijo que es redundante escribir "esta.salta propiedad", mientras que creo que el código se vuelve más fácil de hacer al hacerlo.

Resharper también tiene sugerencias para transformar if en true o no en true. Casi lo mismo, pero depende de su estilo de codificación. Por lo tanto, cuando encuentre más cómodo el uso de var, use esta sugerencia.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top