2010-10-19 4 views
0

Doublons possibles:
Use of var keyword in C#
Use of “var” type in variable declarationAvantages et inconvénients de var dans .net 3.5 datatype

Bonjour à tous,

« Var keywork il besoin de type explicitement coulée Évitez boxe et unboxing types de valeur lorsque cela est possible. "

Est-il conseillé d'utiliser le mot-clé var au lieu du type de données explicite?

+6

'var' n'est pas un type de données dans .NET et la phrase que vous mettez à l'intérieur des guillemets doubles n'a absolument aucun sens. –

Répondre

7

De ReSharper Horizons blog:

  1. Il induit une meilleure appellation pour les variables locales. Lorsque vous lisez la déclaration de variable locale avec le type explicite, vous avez plus d'informations à ce moment et quelque chose comme "IUnitTestElement current" prend tout son sens. Toutefois, lorsque cette variable locale est utilisée plus tard, vous lisez "current" , ce qui prend du temps pour comprendre la signification. L'utilisation de "var currentElement" facilite la lecture à tout endroit.

  2. Il induit une meilleure API. Lorsque vous laissez le compilateur déduire le type du type de retour de la méthode ou du type de propriété, vous devez avoir les bons types dans la première place. Lorsque vous n'avez pas de type explicite dans l'expression d'initialisation , vous devez avoir les meilleurs noms pour les membres.

  3. Il induit une initialisation de variable. Il est généralement recommandé d'initialiser la variable dans la déclaration, et le compilateur a besoin de initializer pour inférer le type pour la variable locale déclarée avec le mot-clé "var" .

  4. Supprime le bruit de code. Il y a beaucoup de cas, quand localement implicitement tapé réduira la quantité de développeur de texte doit lire, ou plutôt sauter. La déclaration d'une variable locale à partir d'une nouvelle expression d'objet ou d'une expression de transtypage nécessite de spécifier deux fois le type si vous n'utilisez pas "var". Avec les génériques, il peut y avoir beaucoup de code redondant. Un autre exemple serait variable d'itération dans foreach sur Dictionnaire.

  5. Il n'est pas nécessaire d'utiliser la directive. Avec var, vous n'avez pas de référence explicite au type, car le compilateur en déduit le type, donc vous n'avez pas besoin d'importer un espace de noms lorsque vous avez besoin d'une variable temporaire.

Les inconvénients sont potentiellement un code moins lisible. Par exemple, la ligne int myInt = 0; est encore plus simple pour la plupart des var myInt = 0; mais cela est principalement dû à la syntaxe que nous étudions depuis des années.

4

var n'est pas un type de données, c'est simplement du "sucre syntaxique" pour "laisser-le-compilateur-inférer-au-moment de la compilation-quel-type-réel-à-utiliser".

Donc, vous avez juste besoin de comprendre les conclusions de type suivantes:

var x = 4; //int 
var y = 4.0; //double 
var z = 4M; //decimal 
var w = (string)null; //string 
Questions connexes