Son variables implícitamente-escrito el camino a seguir (C #)
-
19-09-2019 - |
Pregunta
Estoy utilizando StyleCop para ReSharper en un proyecto escrito originalmente para .NET v2. Pero desde entonces he actualizado este proyecto de 3,5 marco.
StyleCop está recomendando cambio la mayor parte de mis variables de tipo explícito a mecanografiadas de forma implícita por ejemplo:
string - var
costumbre tipo fuerte - var
¿Es este el camino a seguir cuando se trabaja con un proyecto .NET 3.5. Parece inusual que declara todo como var.
No dude en actualizar el título de la pregunta si mi terminología está fuera ...
Solución
Los que no son genéricos, esas son las variables implícitamente mecanografiadas. Esto es realmente en gran medida una cuestión de gusto. Hay lugares donde se puede excederse en el uso de var
y hay lugares donde es muy claramente necesario (piensan los tipos anónimos) por lo que acaba de encontrar el lugar en el medio que se adapte a usted (y su equipo) la preferencia.
Otros consejos
sido objeto de debate en muchos lugares, y es cuestión de gustos. Comparar estas dos líneas de código:
StringBuilder stringBuilder = new StringBuilder();
var stringBuilder = new StringBuilder();
¿Qué prefieres?
Tener un vistazo a este
Las variables localesImplícitamente con tipo (C # Guía de programación)
Una variable local es implícitamente mecanografiado inflexible al igual que si tuviera declarado a sí mismo el tipo, pero el compilador determina el tipo.
También echar un vistazo a de palabra clave var en C #
Creo que es más bien una sugerencia y se debe considerar, pero no necesariamente aplicado plenamente.
Mientras personal creo que el mejor uso de var es cuando el tipo de declarar / regresar es obvio, es decir:
var temp = "Test me now";
frente
var temp = GetTestData();
También me gusta mucho estar en condiciones de declarar tipos genéricos con menos código:
var test = new Dictionary<string,string>();
frente
Dictionary<string, string> test = new Dictionary<string,string>();
var es bastante importante cuando se utiliza, por ejemplo, tipos anónimos ...
var cees = from c in Customers select new { c.Name, c.Birthdate };
ReSharper sugerirá cambiar todo a var. Para las definiciones obvias como
var c = new Customer();
Me gusta usarlo. por alguna llamada a la API que puede anotar el tipo de forma explícita:
Customer c = repository.Get(1);