2010-09-24 4 views
2

Possible en double:
Use of var keyword in C#Utilisez l'opérateur var au lieu de type classe

J'utilise ReSharper dans Visual Studio. Chaque fois que je crée une instance de classe resharper me suggère d'utiliser var au lieu du type exact de classe. Pourquoi utiliser l'opérateur var plus approprié?

+2

Je note que « var » est pas un opérateur * *. C'est un * spécificateur de type de variable locale *. –

Répondre

1

Moins de répétition, pour les débutants. Lequel avez-vous plus:

IDictionary<string, object> foo = new SortedDictionary<string, object>(); 

ou

var foo = new SortedDictionary<string, object>(); 

Personnellement, je trouve ce dernier beaucoup plus lisible. ReSharper vous suggère d'utiliser var via un context action

+2

Oui, lors de l'utilisation de constructeurs. Mais var foo = SomeFunction (someparameter); n'est pas très lisible. J'aime beaucoup mieux le précédent. –

5

Une action de contexte dans ReSharper (communément désignée par une icône en forme de crayon), comme une action d'intention dans IntelliJ IDEA, est quelque chose que vous pouvez utiliser si vous le souhaitez, mais ce n'est pas obligatoire. Ceci est opposé à un quick-fix (une ampoule jaune ou rouge) qui est spécifiquement ciblé pour résoudre un problème de code que ReSharper a découvert. Encore et encore Les utilisateurs de ReSharper sont étourdis lorsqu'ils voient ReSharper suggérant d'utiliser var, puis (dès que vous avez accepté la suggestion) suggérant d'utiliser à nouveau le spécificateur de type explicite. Mais compte tenu de la nature des actions de contexte, il est tout à fait correct d'avoir des paires d'actions de contexte opposées comme celle-ci, et ReSharper en a beaucoup.

Si vous ne voulez pas ReSharper pour afficher cette action de contexte particulier, vous pouvez le désactiver dans ReSharper> Options> [Langue]> Actions de contexte

+0

Btw, utiliser ou non var dans différents scénarios est quelque chose que vous pouvez appliquer en mode batch en utilisant le nettoyage de code de ReSharper. – gorohoroh

+0

Créez un profil de nettoyage de code personnalisé, définissez "Style de déclaration de variable locale" sur "Utiliser 'var' uniquement lorsque l'initialiseur a une utilisation de type" et appliquez le profil à une sélection personnalisée. Voir les détails à http://www.jetbrains.com/resharper/webhelp/Code_Cleanup__Creating_Custom_Profiles.html – gorohoroh

Questions connexes