Użycie słowa kluczowego „Korzystanie” w interfejsie C #

16

Kiedy używam C # do pisania kodu i definiuję interfejs za pomocą Visual Studio 2010, zawsze zawiera on szereg instrukcji „using” (jak pokazano w przykładzie)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TestEngine.TestNameSpace
{
    interface ITest1
    {
        bool testMethod(int xyz);
    }
} 

Zastanawiam się, do czego służą i czy są naprawdę konieczne. Czy mogę to pominąć? Czy są one konieczne tylko wtedy, gdy używam tych części w opisie interfejsu?

Na nie
źródło
dzięki za edycję. Właśnie sam to rozgryzłem. w jakiś sposób pominięto instrukcje używania, mimo że wybrałem je w bloku kodu :)
Onno
2
Przeczytaj także stackoverflow.com/a/151560/240613 : w twoim kodzie zastosowania są w niewłaściwym miejscu.
Arseni Mourzenko
1
Dzięki za link, to świetny dodatek. Po odpowiedzi @Akshat Jiwan Sharma stało się jasne, że tak rzeczywiście jest, ale jednocześnie pytanie dotyczy domyślnego szablonu / ustawień podanych przez MS podczas instalacji VS2010.
Onno
1
@MainMa - tutaj Visual Studio umieszcza usingsszablony domyślne, więc chyba, że ​​Microsoft je zaktualizuje, to pytanie będzie ważne.
ChrisF
1
@Midhat: To prawda, ale myślę, że jest oczywiste, o co pyta się, gdy czyta się pytanie. Edytuj tytuł, jeśli możesz wymyślić lepszy.
Onno

Odpowiedzi:

49

Visual Studio nie wie, jaki kod zamierzasz napisać, dlatego domyślnie zawiera najczęściej używane przestrzenie nazw w szablonie „nowej klasy”. Robi się to, abyś nie musiał rozpoznawać wszystkich odniesień dla każdego wiersza nowego kodu, który piszesz.

Po napisaniu kodu podstawowego kliknij prawym przyciskiem myszy i wybierz opcję Organizuj zastosowania> Usuń i posortuj , aby usunąć wszystkie nieużywane.

ChrisF
źródło
2
Ponadto, jeśli przez pomyłkę usuniesz wiersz „za pomocą”, możesz dodać je ponownie, przechodząc do nazwy klasy, której teraz nie można znaleźć, i kliknij prawym przyciskiem myszy -> Rozwiąż -> Używając ...
Pan Lister
10
@MrLister: Jeśli jeszcze tego nie wiesz: naciśnij „ctrl +”. (okres kontrolny), gdy kursor znajduje się w jakimkolwiek nierozwiązanym typie lub klasie i uzyskasz ten sam efekt bez konieczności dotykania myszy.
Steven Evers
3
Również jako dodatek do odpowiedzi: nieużywane „usings” nie wpłynie na środowisko wykonawcze kodu, ponieważ zostaną załadowane tylko używane „usings”. Mogą jednak wpływać na IDE i prędkości kompilacji: stackoverflow.com/questions/136278/…
Holger,
Ponieważ jest to zaakceptowana odpowiedź, chciałem wspomnieć, że StyleCop będzie narzekać na to, że referencje znajdują się w niewłaściwym miejscu, a także można edytować szablon nowej klasy i nowego interfejsu itp.
Job
5

Tak, możesz usunąć dowolną nieużywaną dyrektywę. Te dyrektywy są automatycznie dodawane przez visual studio, ponieważ są one najczęściej używane i jeśli na przykład nie zamierzasz używać linq w interfejsie, możesz usunąć dyrektywę

 System.Linq;

To samo dotyczy również innych dyrektyw, a moim zdaniem dobrą praktyką jest przenoszenie dyrektyw za pomocą wewnątrz przestrzeni nazw.

Akshat Jiwan Sharma
źródło
Z przyjemnością pomogę mi zadane pytanie również przez długi czas mnie intrygowało. :)
Akshat Jiwan Sharma
Można edytować plik szablonu i dostosować, które wyrażenie instrukcji zostanie dołączone i gdzie - powinny one domyślnie wchodzić do przestrzeni nazw, w przeciwnym razie StyleCop będzie narzekać, a co gorsza - mogą się zdarzyć złe rzeczy.
Job
3

Te domyślne usinginstrukcje są częścią domyślnego szablonu podczas tworzenia interfejsów. Zawsze możesz edytować szablon, aby go usunąć. Zobacz to pytanie, aby uzyskać więcej informacji.

Bernard
źródło
Ale czy są naprawdę konieczne? Czy istnieje dobry powód, aby znaleźć się w szablonie?
Onno
Jeśli ich nie potrzebujesz, po prostu je usuń. Są to tylko wartości domyślne.
Bernard
Są one konieczne tylko wtedy, gdy jedną z metod interfejsu jest typ zwracany w jednej z nich. Potrzebujesz Systemu minimum, a pozostałe tylko w razie potrzeby dla typów, które chcesz zwrócić.
Graham
W rzeczywistości wiele klas nie potrzebuje systemu. Ale w sumie ułatwia życie większości programistów, zwłaszcza tym, którzy nie są przyzwyczajeni do platformy .NET i nie wiedzą, gdzie wybrać główne klasy systemowe.
Wyatt Barnett
0

W skrócie nazywane są one przestrzeniami nazw . Przestrzenie nazw służą również do odwoływania się do niektórych klas bibliotek w kodzie. Istnieją również zalecane wytyczne dotyczące korzystania z przestrzeni nazw w .NET

W większości przypadków możesz je łatwo usunąć, jeśli nie są używane. Następujące dwie przestrzenie nazw są potencjalnymi kandydatami do usunięcia.

using System.Collections.Generic;
using System.Linq;

Visual Studio będzie narzekać, a NIE kompilować kodu, po użyciu niektórych klas frameworka / biblioteki bez zadeklarowania swoich przestrzeni nazw. Tak więc odtwarzanie przestrzeni nazw strukturyzacji kodu, a także ułatwienie odwołań między klasami projektów, interfejsami, konstrukcjami itp.

Jusubow
źródło
-1

użycie w C # używane na wiele sposobów .. słowo kluczowe słowo oznacza użycie .. na początku, gdy użyliśmy system; oznacza to, że istnieje biblioteka DLL o nazwie System, w której przechowywane są wszystkie główne funkcje i używamy jej do skracania naszego kodu ...

system.WriteLine("Andy");

ale kiedy użyjemy powyższego systemu, możemy zapisać go jako

WriteLine("Andy");

więcej w SQLserver, gdy korzystamy z połączenia, oznacza to, że po użyciu danych z bazy danych za pomocą połączenia polecenia samo się zamknie. jest to bardzo przydatne dla programisty, który chce zaoszczędzić czas

andysmart001
źródło
1
Nie próbuj dodawać niepotrzebnych (i potencjalnie spamujących) linków do swoich odpowiedzi.
ChrisF