Ich bin ein bisschen verrückt und neige dazu, meine Projekte zu behalten, indem ich Referenzen und using
s in jeder Klasse bereinige, um nur das zu behalten, was tatsächlich verwendet wird.
Welches andere Argument könnte ich (abgesehen von der Beruhigung meiner Zwangsstörung) vorbringen, um mich an das Wesentliche zu halten? Ich denke hauptsächlich an Systemreferenzen. Jeder Verweis auf benutzerdefinierte Arbeit bringt eine Menge Probleme mit der Abwärtskompatibilität mit sich. Ist der Release-Footprint größer? Kompilierzeit länger?
using
s und Referenzen nicht dasselbe sind. Viele der Antworten berücksichtigen dies nicht.Antworten:
Intellisense ist für Sie um einiges nützlicher, wenn Sie sich
using
auf ein Minimum beschränken, und das ist ein großer Vorteil.Davon abgesehen glaube ich nicht, dass es einen Gewinn gibt. Vielleicht arbeitet der C # -Compiler also um 1% schneller. Na und.
quelle
Ctrl+.
, um "Add NamespaceXYZ
" schnell zu behebenusing
s ignorieren, bis er herausgefunden hat, dass sie tatsächlich nicht erforderlich sind, aber er kann dies nicht herausfinden, es sei denn, er hat zuerst Ihre gesamte Quelldatei kompiliert. Wie bei Projektreferenzen werden sie nicht verworfen, nur weil sie scheinbar nicht verwendet werden, da sie möglicherweise dynamisch (während der Kompilierung nicht erkennbar) verwendet werden.Da dies in Visual Studio praktisch trivial ist (einfacher Rechtsklick), warum nicht?
Dies steht im Einklang mit Occams Rasiermesser , es ist einfach nur gute Technik.
Überlegen Sie, was passiert, wenn ein anderer Entwickler versucht, Ihr Projekt zu öffnen, und es einen (nicht verwendeten) Verweis auf eine Bibliothek enthält, die sich nicht auf seinem Computer befindet. Jetzt muss der arme Entwickler herausfinden, warum diese ungelöste Referenz existiert und was dagegen zu tun ist.
Wenn Sie es vorziehen, betrachten Sie es in Bezug auf die goldene Regel. Möchten Sie die Entwicklung eines Projekts übernehmen, das viele Verweise auf Bibliotheken enthält, die Sie nicht auf Ihrem Computer haben und von denen Sie keine Ahnung haben, warum sie dort sind?
quelle
using
Anweisungen dienen lediglich dazu, dass der Compiler Klassen usw. vollständig referenzieren kann. Zusätzlicheusing
Anweisungen haben keinen nennenswerten Einfluss auf die Kompilierungszeit.Außerdem lädt die Laufzeitumgebung eine referenzierte Assembly erst dann, wenn sie tatsächlich benötigt wird. Daher glaube ich auch hier nicht, dass nicht benötigte Referenzen negative Konsequenzen haben.
Wenn Sie ein Tool wie Reflector verwenden, kann das Auffinden und Entfernen dieser unnötigen Teile weitgehend automatisiert werden. Daher würde ich sagen, dass es verschwenderisch ist, überhaupt viel Zeit für diese Aktivitäten aufzuwenden. Das manuelle Entfernen nicht benötigter
using
Anweisungen in ein oder zwei Stunden zahlt sich nicht nur für eine Reflector-Lizenz aus, sondern ist auch mit vielen anderen produktivitätssteigernden Funktionen ausgestattet.quelle
using
s und nicht verwendeten Referenzen deutlich auszudrücken . Die beiden sind sehr unterschiedlich!Darüber hinaus wurde hier vermutlich noch nicht erwähnt, dass jede Referenz eine Komponente innerhalb des .NET-Frameworks oder eine externe DLL erfordert. Wenn auf eine externe DLL verwiesen wird, muss diese angegeben werden, wann (und wo) Sie die Software ausführen.
Bearbeiten - Laut gültigem Kommentar von phoog unten: Die Anwendung würde weiterhin ausgeführt, wenn die DLL nicht verwendet wird und nicht mit der Anwendung ausgeliefert werden muss, nur weil sie Referenzen hinzugefügt wurde. Um nicht verwendete Verweise im Code zu entfernen , sollten Sie Folgendes beachten : Entfernen nicht verwendeter Verweise .
quelle