Frage

Zum Beispiel habe ich selten brauchen:

using System.Text;

, aber es ist immer da standardmäßig. Ich nehme an, die Anwendung wird mehr Speicher verwenden, wenn Ihr Code unnötige mit Richtlinien . Aber gibt es etwas, was ich bewusst sein sollten?

Auch dann, wenn es einen Unterschied machen, wenn auch immer das gleiche using-Direktive gegen die meisten / alle Dateien in nur eine Datei verwendet wird?


Edit: Beachten Sie, dass diese Frage nicht über das in keinem Zusammenhang Konzept a Anweisung verwenden, dass eine Verwaltung von Ressourcen zu helfen entworfen, indem sichergestellt wird, wenn ein Objekt geht aus Rahmen, seine IDisposable.Dispose Methode wird aufgerufen. Siehe Verwendung von "using" in C # .

War es hilfreich?

Lösung

Es wird nichts ändern, wenn Ihr Programm läuft. Alles, was benötigt wird ist bei Bedarf geladen. Also selbst wenn Sie diese Anweisung verwenden, wenn Sie tatsächlich einen Typen in diesem Namespace / Assembly verwenden, wobei die Anordnung, dass Anweisung wird korreliert nicht geladen werden.

Vor allem, es ist nur für den persönlichen Vorlieben aufzuräumen.

Andere Tipps

Es sind einige Gründe für das Entfernen nicht genutzten Verwendung (en) / Namespaces, neben Codierung preference:

  • die ungenutzten mit Klauseln in einem Projekt zu entfernen, kann die Kompilierung schneller machen, da der Compiler weniger Namespaces Nachschau Arten zu lösen hat. (Dies gilt vor allem für C # 3.0 wegen Erweiterungsmethoden, wo der Compiler alle Namensräume für Erweiterungsmethoden für eine bessere Übereinstimmungen suchen müssen, generische Typinferenz und Lambda-Ausdrücke, die generische Typen)
  • kann möglicherweise helfen Namenskollision zu vermeiden, in Zukunft baut, wenn neue Arten zu dem nicht verwendeten Namensraum hinzugefügt werden, die die gleichen Namen wie einige Arten in den verwendeten Namensräumen haben.
  • wird die Anzahl der Elemente im Editor automatische Vervollständigung Liste reduzieren, wenn Codierung, posibly zu schnellerer Eingabe führt (in C 3.0 # dieser kann auch die Liste der Erweiterungsmethoden gezeigt reduzieren)

Was Entfernen der nicht verwendeten Namensräume nicht :

  • in irgendeiner Weise ändern, um die Ausgabe des Compilers.
  • ändert in irgendeiner Weise die Ausführung des kompilierten Programms (schnelleren Laden oder bessere Leistung).

Die resultierende Anordnung ist das gleiche mit oder ohne ungenutzt Verwendung (en) entfernt.

Code Sauberkeit ist wichtig.

Man beginnt das Gefühl zu bekommen, dass der Code nicht gewartet werden kann und auf dem browfield Weg, wenn man überflüssig usings sieht. Im Wesentlichen, wenn ich einige nicht verwendete using-Anweisungen zu sehen, eine wenig gelbe Fahne geht in der Rückseite meines Gehirns mir zu sagen, „mit Vorsicht vorgehen.“ Und Produktionscode lesen, sollten Sie nie das Gefühl geben.

So reinigen Sie Ihren usings. Sie nicht nachlässig sein. Vertrauen schaffen. Machen Sie Ihren Code hübsch. Geben Sie einen anderen Entwickler, die warm-wohliges Gefühl.

Es gibt kein IL-Konstrukt, das using entspricht. So setzen die using Aussagen nicht Ihre Anwendungsspeicher erhöhen, da es keinen Code oder Daten, die für sie erzeugt wird.

Using wird bei der Kompilierung nur für die Zwecke der Lösung kurzer Typnamen zu voll qualifizierten Typnamen verwendet. Somit kann der einzige negative Effekt unnötige using haben, ist die Kompilierung ein wenig verlangsamt und ein bisschen mehr Speicher während der Kompilierung nehmen. Ich würde über diese aber nicht besorgt sein.

Damit ist der einzige wirkliche negativer Effekt mit using Anweisungen, die Sie nicht brauchen, ist auf IntelliSense, wie die Liste der möglichen Übereinstimmungen für die Fertigstellung, während Sie steigt ein.

Sie können Namenskonflikte, wenn Sie Ihre Klassen wie die (nicht verwendet) Klassen im Namensraum nennen. Im Fall von System.Text, haben Sie ein Problem, wenn Sie eine Klasse mit dem Namen „Encoder“.

definieren

Wie auch immer dies ist in der Regel ein kleines Problem, und vom Compiler erkannt wird.

Ihre Anwendung wird nicht mehr Speicherplatz. Seine für den Compiler Klassen, die Sie in den Code-Dateien verwenden zu finden. Dabei spielt es keine darüber hinaus nicht sauber zu sein.

wirklich weh

Es ist persönliche Präferenz in erster Linie. Ich reinige sie auf mich (ReSharper macht einen guten Job, mir zu sagen, wenn es nicht benötigt ist mit Anweisungen).

Man könnte sagen, dass es die Zeit verringern könnte zu kompilieren, aber mit Computer und Compiler beschleunigt in diesen Tagen, es wäre einfach nicht wahrnehmbare Wirkung erzielen.

Verlassen zusätzliche using Richtlinien ist in Ordnung. Es gibt einen kleinen Wert sich bei der Entfernung, aber nicht viel. Zum Beispiel macht es meinen IntelliSense Abschluss listet kürzer und damit leichter zu navigieren.

Die kompilierten Baugruppen werden nicht durch Fremd using Richtlinien betroffen.

Manchmal habe ich sie in einem #region, und lassen Sie es zusammenbrach; dies macht die Datei ein wenig sauberen sehen. IMO ist dies einer der wenigen guten Verwendungen von #region.

, wenn Sie Ihren Code sauber zu halten, nicht verwendet using Aussagen sollten aus der Datei entfernt werden. die Vorteile erscheinen sehr klar, wenn man in einem kooperativen Team arbeiten, um Ihren Code verstehen müssen, denken alle Code eingehalten werden muss, weniger Code = weniger Arbeit, die Vorteile sind langfristig.

Sie sind nur als Abkürzung verwendet. Zum Beispiel, würden Sie schreiben müssen: System.Int32 jedes Mal, wenn Sie keine using System haben; an der Spitze.

nicht benutzten Entfernen macht nur Ihren Code sieht Reiniger.

Die using-Anweisung hält Sie nur die Typen von der Qualifikation Sie verwenden. Ich persönlich mag sie aufzuräumen. Wirklich es hängt davon ab, wie ein loc Metrik verwendet wird

Mit nur die Namensräume, die Sie tatsächlich können Sie Ihren Code dokumentiert halten.

Sie können ganz einfach herauszufinden, welche Teile des Codes einander durch ein beliebiges Suchwerkzeug aufrufen.

Wenn Sie nicht verwendete Namensräume haben dies bedeutet nichts, wenn eine Suche ausgeführt wird.

ich arbeite jetzt Namensräume Aufräumen, weil ich ständig bin gefragt, welche Teile der Anwendung den Zugriff auf die gleichen Daten eine oder andere Weise.

Ich weiß, welche Teile Daten jede Art und Weise durch den Datenzugriff zugreifen und Namensräume zum Beispiel getrennt werden direkt über eine Datenbank und in-direkt über einen Web-Service.

Ich kann nicht denken Sie an einem einfacheren Weg, dies alles auf einmal zu tun.

Wenn Sie nur Ihren Code wollen eine Blackbox sein (an die Entwickler), dann ja, es spielt keine Rolle. Aber wenn man es im Laufe der Zeit zu halten braucht, ist es wertvolle Dokumentation wie alle anderen Code.

Die ‚mit‘ Aussage nicht auf die Leistung auswirkt, wie es in der Qualifikation die Namen Ihrer Bezeichner nur ein Helfer ist. Anstatt also den Typ zu haben, System.IO.Path.Combine (...) , können Sie einfach eingeben, Path.Combine (...) , wenn Sie using System.IO .

Vergessen Sie nicht, dass der Compiler eine Menge Arbeit zu tun, alles zu optimieren, wenn Ihr Projekt zu bauen. Mit, dass in viel Platz oder 1 verwendet wird, sollte ein einmal nicht anders zusammengestellt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top