2016-09-08 7 views
1

Ich habe irgendwo gelesen, dass, wenn Sie using System; zu Ihrer .cs Datei hinzufügen, den Compiler (oder vielleicht etwas anderes) fügen alle System bezogenen Klassen zu Ihrer CS-Datei und so vielleicht ist es besser, nicht immer using System; hinzufügen und stattdessen verweist Ihre DateTime mit Sein vollständiger Namespace lautet wie folgt: System.DateTime, zum Beispiel, wenn es einfach genug ist zu tun und einige Dinge verweisen System es in Ihrer CS-Datei.Beeinträchtigen die Verwendung von Anweisungen die Leistung oder die App-Größe im Vergleich zu vollständigen Namespaces?

Ist das wahr und wenn ja, kann das die Leistung beeinträchtigen oder die Größe der App erhöhen? Wenn ja, merke ich, dass using System; ist einfacher zu schreiben und ist ein Komfort und daher müssen Sie Komfort mit Leistung wiegen. Es könnte auch der Fall sein, dass nur das Hinzufügen einer using System; keinen großen Unterschied macht, aber wenn viele Referenzen hinzugefügt werden, könnte es vielleicht? Vielen Dank!

+7

mit * ich irgendwo gelesen, dass Unsinn Unsinn unsinnig Unsinn. * Wo haben Sie gelesen, dass? –

+2

Triff den Typen, der das geschrieben hat. Das Hinzufügen von 'using'-Anweisungen besteht aus einem Grund: Machen Sie Ihr Leben einfacher. Verwenden Sie es, um nicht immer den vollständig qualifizierten Namen jedes einzelnen Typs schreiben zu müssen. Es macht auch Ihren Code viel lesbarer. Grundsätzlich macht es keinen Unterschied, wenn Sie 'System schreiben.DateTime "innerhalb des Codes oder verwenden Sie' DateTime' in Kombination mit einem 'using', da Sie in beiden Fällen einen Verweis auf mscorlib benötigen. – HimBromBeere

+0

@ FrédéricHamidi Haha Ich suchte nach der Quelle, konnte sie aber nicht finden. Es ist möglich, dass ich etwas falsch gelesen habe oder davon ausgegangen bin, dass ich damit zusammenhängende Informationen gelesen habe. – hvaughan3

Antwort

6

Beide Direktive und vollständigen Namespace die gleiche IL erzeugen.

enter image description here

enter image description here

Es könnte sehr klein wenig zusätzliche Arbeit für Language Compiler, aber Sie für die Lesbarkeit opfern wollen.

enter image description here

Überblick über die Kompilierung und zur Laufzeit verarbeitet Diagramm von Illustrated C# 2012 by Daniel Solis ist

+0

'using' * Anweisung *, nicht' using' * Anweisung *. In C# gibt es zwei verschiedene Funktionen, die das Schlüsselwort 'using' verwenden. Wenn Sie den Namen * * * verwenden, wenn Sie tatsächlich den * anderen * meinen, kann dies nur zu Verwirrung führen. –

+0

@Damen_The_Unbeliever Fixed. Danke für das Aufzeigen! – Win

+0

Große Antwort und danke! Ich habe nicht daran gedacht, die Unterschiede im Compiler-Ergebniscode zu überprüfen. – hvaughan3

-2

Wenn Sie "System verwenden" verwenden Sie haben Zugriff auf alle Methoden innerhalb der Systemklasse.
Ihre Klasse hat einen "Link" zu allen System.
Wenn Sie schreiben "using System.DateTime;" Als Beispiel haben Sie nur Zugriff auf die DateTime-Funktionen.
Meiner Meinung nach ist es besser, die angegebene Verwendung wie "using System.DateTime" zu verwenden.
Damit haben Sie keine Links zu "unwichtigen" Klassen/Methoden in Ihrer .cs-Datei.
Auch das "using System" enthält nicht alle Methoden, die sich im System befinden.
Beispiele hierfür sind die IO-Klasse oder die Xml-Klasse.
Wenn Sie diese verwenden möchten, müssen Sie "System.IO" schreiben. vor dem Methodenaufruf oder Sie müssen mit System.IO schreiben;

-1

Erwähnung wie

System.Console.WriteLine("Something");

diese einfach nur Zweck zu verstehen. Aber Entwicklerpunkt jedes Mal erwähnen nicht vollständig Qualify Names.

So That Time Namespaces Using.System

Verwandte Themen