Sont des variables implicitement typé la voie à suivre (C #)
-
19-09-2019 - |
Question
J'utilise StyleCop pour ReSharper sur un projet écrit à l'origine pour .net v2. Mais je l'ai depuis mis à jour ce projet de 3,5 cadre.
StyleCop recommande que je change la majeure partie de mes variables explicitement dactylographiées typée implicitement par exemple:
string - var
type personnalisé forte - var
Est-ce la voie à suivre lorsque vous travaillez avec un projet .net 3.5. Il semble inhabituel déclarer tout comme var.
Ne hésitez pas à mettre à jour le titre de la question si ma terminologie est à ...
La solution
Ce ne sont pas génériques, ce sont des variables implicitement typés. C'est vraiment en grande partie une question de goût. Il y a des endroits où vous pouvez exagérer l'utilisation de var
et il y a endroits où il est très manifestement nécessaire (pensez types anonymes) afin de trouver l'endroit au milieu qui convient à votre (et votre équipe de) préférence.
Autres conseils
débattues par de nombreux endroits, et il est bas au goût. Comparez ces deux lignes de code:
StringBuilder stringBuilder = new StringBuilder();
var stringBuilder = new StringBuilder();
Que préférez-vous?
Jetez un oeil à cette
Variables locales typées Implicitement (Guide de programmation C #)
Une variable locale implicitement typée est fortement typé comme si vous aviez a déclaré le type vous-même, mais le compilateur détermine le type.
Aussi jeter un oeil à la page utilisation du mot-clé var en C #
Je crois que son plus d'une suggestion et sont à considérer, mais pas nécessairement pleinement mis en œuvre.
Bien que personnelle, je crois que la meilleure utilisation du var est lorsque le type déclarant / retour est évidente, i.e.:
var temp = "Test me now";
contre
var temp = GetTestData();
Aussi j'apprécie vraiment être en mesure de déclarer des types génériques avec moins de code:
var test = new Dictionary<string,string>();
contre
Dictionary<string, string> test = new Dictionary<string,string>();
var est très important lors de l'utilisation par exemple types anonymes ...
var cees = from c in Customers select new { c.Name, c.Birthdate };
ReSharper proposera de changer tout var. Pour les définitions évidentes comme
var c = new Customer();
J'aime l'utiliser. pour certains appels d'API j'écrire explicitement le type:
Customer c = repository.Get(1);