2009-07-30 25 views
10

posibles duplicados:
What to use: var or object name type?
Use of var keyword in C#
What’s the point of the var keyword?
Should I always favour implictly typed local variables in C# 3.0?C# var uso de palabras clave

que acaba de instalar una versión de prueba de ReSharper de evaluarlo para mi empresa. Una cosa que he notado es que es lo que sugiere que cambio el siguiente (formada por ejemplo):

string s = ""; 

a

var s = ""; 

¿Es mejor la práctica de utilizar la palabra clave var en lugar de utilizar el Objeto Escriba al declarar variables? ¿Qué ventajas ofrece? Por contexto, soy un antiguo desarrollador de Java que acaba de hacer la transición a .Net funciona.

+1

Creo que esto responde a su pregunta: http://stackoverflow.com/questions/17032/should-i-always-favour-implictly-typed-local-variables-in-c-3-0 –

+2

Duplicados: http://stackoverflow.com/questions/209199/ whats-the-point-of-the-var-keyword y http: // stackoverflow.com/questions/236878/what-to-use-var-or-object-name-type – Noldorin

+0

http://stackoverflow.com/questions/41479/use-of-var-keyword-in-c –

Respuesta

28

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

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

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

Sin embargo, esto sería una mala utilización de var:

var thing = GetThingFromDatabase(); 
12

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

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

convierte

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

Viene a ser lo mismo, porque el uso de la palabra clave var, el variable es implicity typed y el compilador infiere el tipo en tiempo de compilación. Prefiero especificar el tipo en lugar de usar var en la mayoría de los casos, por lo tanto, cambio la configuración de mi reafilamiento.

+1

-1: El que pregunta cómo lo hace y quiere saber en qué se basaría para decidir qué camino tomar. –

+0

No creo que mi respuesta sea inútil y merezca un voto negativo – Charlie

+0

Bien, downvote undone: parece que otros tienen una visión similar (¿o están tratando de contrarrestar mi 'maldad'? Le di el -1 para contrarrestar uno solo +1 en ese momento - Creo que las respuestas que no agregan mucho no son el fin del mundo, siempre y cuando se mantengan en cero y no hagan que tarde más tiempo en llegar a una respuesta que en realidad tenga algo que decir. IOW Hay un por lo que http://stackoverflow.com/questions/1205329/c-var-keyword-usage/1205396#1205396 tiene mi +1 y otros también. –

1

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

Un montón de sugerencias son solo sugerencias de las que di la primera vez que las vi ... Que siendo una de ellas.

Otra fue que decía que era redundante escribir "this.someProperty", mientras que creo que el código se vuelve más fácil de leer al hacer eso.

0

Resharper también tiene la sugerencia de transformar la declaración if en verdadera o no verdadera. Casi lo mismo, pero depende de su estilo de codificación. Entonces, cuando encuentre que usar var es más cómodo, use esta sugerencia.