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 à ...

Était-ce utile?

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

var (Référence C #) et

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 #

et C # Débat: Quand utiliser var?

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);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top