2010-01-05 10 views
5

Używam ponownego ostrzejszy na dość długi czas i przyzwyczaić się do rozwiązania wielu problemów ze względu na rodzaj Alt + Wprowadź, dziś jeden z moich kolegów pyta, jakie są naprawdę korzyści. Nie mogłem powiedzieć ani słowa poza tym, że jeśli go nie używasz, warto go importować.Jakie są korzyści z usuwania nadmiarowych importu w VB.NET lub C# za pomocą pliku

Czy ktoś może mi wyjaśnić, jakie są rzeczywiste korzyści, jeśli takie istnieją?

+0

Przez redundantę znaczysz bezużyteczny? –

+0

Pomyśl o tym, jak czyścić pokój lub ścielić łóżko. – Josh

+0

Zapytano wiele razy. Zobacz ten wątek: http://stackoverflow.com/questions/136278/why-should-you-remove-unnecessess-c-using-directives – womp

Odpowiedz

6

Oprócz tego, że czyści swój kod, możesz również zminimalizować "starcia nazw".
Na przykład, gdy masz 2 typy o tej samej nazwie w różnych obszarach nazw i nie używasz żadnego typu z jednej przestrzeni nazw ... Nie musisz wtedy określać przestrzeni nazw tego typu, gdy używasz, Czyści kod.

0

Jest szybszy - jeśli masz referencję, to kompilator musi załadować tabele symboli.

+1

Tematstarter nie mówi o odniesieniach do złożeń, on mówi o importowaniu/używaniu przestrzeni nazw, które nie są używane. –

+0

Tak, wiem to. Jak myślisz, w jaki sposób kompilatory są w stanie rozwiązać nazwy podczas używania instrukcji importowania. Kompilator wykonuje i odczytuje tabelę symboli dla tej przestrzeni nazw i umieszcza nazwy w tabeli symboli, aby mógł je rozwiązać.Nie mam nic przeciwko otrzymaniu -1, gdy jest źle, ale to jest pisanie kompilatora 101. – Hogan

+0

Tutaj idziesz @Frederik ktoś inny, kto powiedział to samo http://stackoverflow.com/questions/136278/why-should-you- remove-niepotrzebne-c-using-guidelines/136320 # 136320 – Hogan

0

Nie ma żadnych korzyści w zakresie wydajności i kompilacji. Po prostu tworzy ładniejszy kod.

+0

Czy kompilacja nie byłaby wolniejsza, gdyby załadowano więcej symboli? – Hogan

+0

Być może, ale tylko marginalnie; ludzkie oko rzadko by w stanie odróżnić. Będziesz mieć o wiele więcej problemów z wydajnością od ładowania przywoływanych projektów podczas kompilacji, niż z niepotrzebnych instrukcji użycia. – Randolpho

2

Spowoduje to zmniejszenie rozmiaru kodu źródłowego (bardzo nieznacznie), ale także poprawi jakość kodu w mojej opinii. Jeśli uwzględnisz tylko to, czego potrzebujesz, będzie to znacznie jaśniejsze.

Jeśli włączysz bibliotekę, której nie potrzebujesz, a czytam Twój kod, może to oznaczać, że tracę czas na zastanowienie się nad tym, do czego ją odwołujesz lub dlaczego jest on używany.

1

Jeśli importujesz więcej niż trzeba uruchomić na kilka kwestii:

  • Przy próbie użycia klasy, jest dwuznaczna jakiej klasy masz na myśli i trzeba podać dodatkowo disambiguate
  • Funkcja autouzupełniania sugeruje wiele rzeczy, których prawdopodobnie nie użyjesz (zwykle to robi, ale posiadanie dodatkowych funkcji tylko pogarsza problem).
  • Trudno powiedzieć, jakie zależności od klasy ma właśnie przeglądanie listy użycia.
4

Usuwa nadmiarowość, co jest dobre. I łatwo jest uzyskać większość potrzebnych zastosowaniem dyrektyw tyłu, naciskając ALT + ENTER (z R #) lub powołując się na smart-tag naciskając Ctrl + . (bez R #) na klasie, która tego potrzebuje.

Po stronie negatywów możesz stracić z pola widzenia dostępne metody rozszerzeń, zwłaszcza gdy usunięty zostanie import przestrzeni nazw System.Linq.

+0

tylko uwaga: Resharper wyświetli listę szybkiego dostępu do dodawania przestrzeni nazw System.Linq, jeśli zaczniesz pisać wyrazy zapytań linq. –

Powiązane problemy