Ich freue mich auf das kommende Visual Studio 2017 .
Im Abschnitt mit dem Titel Boosted Productivity wird ein Image von Visual Studio verwendet, um alle Vorkommen von var durch den expliziten Typ zu ersetzen .
Der Code weist anscheinend mehrere Probleme auf, die Visual Studio als "Bedarfsbehebung" identifiziert hat.
Ich wollte mein Verständnis der Verwendung von var in C # überprüfen, also las ich einen Artikel von Eric Lippert aus dem Jahr 2011 mit dem Titel Uses and misuses of implicit typing .
Eric sagt:
- Verwenden Sie var, wenn Sie müssen; Wenn Sie anonyme Typen verwenden.
- Verwenden Sie var, wenn der Typ der Deklaration aus dem Initialisierer ersichtlich ist, insbesondere wenn es sich um eine Objekterstellung handelt. Dies eliminiert Redundanz.
- Ziehen Sie die Verwendung von var in Betracht, wenn der Code den semantischen "Geschäftszweck" der Variablen betont und die "mechanischen" Details ihres Speichers herunterspielt.
- Verwenden Sie explizite Typen, wenn dies erforderlich ist, damit der Code richtig verstanden und verwaltet wird.
- Verwenden Sie beschreibende Variablennamen, unabhängig davon, ob Sie "var" verwenden. Variablennamen sollten die Semantik der Variablen darstellen, nicht die Details ihrer Speicherung. "DecimalRate" ist schlecht; "InterestRate" ist gut.
Ich denke der Großteil der var- Nutzung im Code ist wahrscheinlich in Ordnung. Ich denke, es wäre in Ordnung, var nicht für das Bit zu verwenden, das liest ...
var tweetReady = workouts [ ... ]
... weil es vielleicht nicht 100% sofort ist, um welchen Typ es sich handelt, aber selbst dann weiß ich ziemlich schnell, dass es sich um einen handelt boolean
.
Die var Verwendung für diesen Teil ...
var listOfTweets = new List<string>();
... sieht für mich genauso aus wie eine gute Verwendung von var, da ich denke, dass es überflüssig ist, Folgendes zu tun:
List<string> listOfTweets = new List<string>();
Obwohl basierend auf Eric sagt, sollte die Variable wahrscheinlich eher Tweets als listOfTweets sein .
Was wäre der Grund, die gesamte var
Verwendung hier zu ändern ? Stimmt etwas mit diesem Code nicht, den ich vermisse?
var
hier in Ordnung sind. Sie könnten möglicherweise eine ändern - aber selbst dann denke ich, dass es nicht wirklich notwendig ist. Warum alle in expliziten Typ ändern?
vars
auf die gleiche Weise markiert. daneben das gleiche warnende Kreuz und eine rote Unterstreichung. Vermutlich möchte Visual Studio sie alle auf die gleiche Weise korrigieren. Es sei denn, ich irre mich.