2010-08-12 7 views
0

Possible en double:
Use of var keyword in C#Pourquoi utiliser var comme variable de type

Je ne comprends pas vraiment pourquoi vous le mot-clé var en C#

Ce code:

var s = "my string";

est le même que:

string s = "my string";

Pourquoi voudriez-vous laisser le compilateur déterminer le meilleur type à utiliser. Sûrement vous devez savoir quel type à utiliser. Après tout, vous écrivez le code?

N'est-il pas plus clair/propre d'écrire le deuxième code?

+0

oops question 41479 quand searchin plus tôt. Aucune idée comment si: -S – codingbadger

Répondre

1

Voir Use of var keyword in C#

Il est très, très subjective!

Personnellement, j'utilise "var" quand je pense que c'est évident ce que le type est, et je veux supprimer "bruit" du code source.

0

Vous l'utilisez parce que var est plus courte que la chaîne et si vous avez une expression (surtout générique) où le type est long et inutile à taper. La réalité est qu'il n'y a pratiquement aucun inconvénient à utiliser var comme VS apparaîtra le type sur mouseover d'un nom de variable.

1

Cela n'a pas beaucoup de sens pour moi de l'utiliser là non plus. Pour certains, je peux voir plus d'un point juste pour éviter de taper:

var cache = new Dictionary<int, Page>(); 

Mais je serais tenté de ne pas, comme IntelliSense enregistre la plupart des frappe de toute façon. Pour Linq, cependant, je l'utilise presque toujours - vous pouvez déterminer le type, mais cela pourrait changer si vous changez l'instruction, donc c'est un peu compliqué.

1
StringBuilder output = new StringBuilder(); 

devient

var output = new StringBuilder(); 

Ou des types anonymes, ala LINQ:

List<MyClass> items = GetItems(); 
var itemsILike = items.Select(i => new { Cheeky = i.Monkey, Bum = i.Looker }); 

Je l'habitude d'utiliser plus souvent, mais maintenant j'essaie de l'éviter pour des trucs comme:

var items = GetItems(); 

Pour cet exemple, cependant, il peut st Cela peut être utile si vous essayez de travailler sur le code d'une autre solution dont vous savez qu'elle va être refactorisée, mais vous devez quand même écrire du code.

0

Pour la frappe et supprimer les codes inutiles, mais l'utiliser seulement quand il est évident de quel type vous déclarez manqué

Questions connexes