C# IntelliSense

Funkcja IntelliSense języka C# to pomoc uzupełniania kodu specyficzna dla języka. Jest on dostępny podczas pisania kodu w języku C# w edytorze kodu i debugowania go w oknie polecenia trybu natychmiastowego.

Listy uzupełniania

Listy uzupełniania funkcji IntelliSense w języku C# zawierają tokeny z listy elementów członkowskich, Ukończ wyraz i nie tylko. Zapewnia szybki dostęp do:

  • Elementy członkowskie typu lub przestrzeni nazw

  • Zmienne, polecenia i nazwy funkcji

  • Fragmenty kodu

  • Słowa kluczowe języka

  • Metody rozszerzeń

Listy uzupełniania w języku C# odfiltruj nieistotne tokeny i wstępnie wybierz tokeny na podstawie kontekstu. Aby uzyskać więcej informacji, zobacz Filtrowane listy uzupełniania.

Fragmenty kodu na listach uzupełniania

W języku C#lista uzupełniania zawiera fragmenty kodu, które ułatwiają wstawianie wstępnie zdefiniowanych treści kodu do programu. Fragmenty kodu są wyświetlane na liście uzupełniania jako tekst skrótu fragmentu kodu. Aby uzyskać więcej informacji na temat fragmentów kodu, które są domyślnie dostępne w języku C#, zobacz Fragmenty kodu w języku C#.

Słowa kluczowe języka na listach uzupełniania

Lista uzupełniania zawiera słowa kluczowe języka C#, które ułatwiają wstawianie ich do programu. Aby uzyskać więcej informacji na temat słów kluczowych języka C#, zobacz słowa kluczowe języka C#.

Metody rozszerzeń na listach uzupełniania

W języku C#lista uzupełniania zawiera metody rozszerzeń, które znajdują się w zakresie.

Metody rozszerzeń używają innej ikony niż metody wystąpienia. Gdy metoda wystąpienia i metoda rozszerzenia o tej samej nazwie znajdują się w zakresie, lista uzupełniania wyświetla ikonę metody rozszerzenia.

Uwaga

W przypadku String obiektów lista uzupełniania nie wyświetla wszystkich metod rozszerzeń.

Przefiltrowane listy uzupełniania

Funkcja IntelliSense usuwa niepotrzebne elementy członkowskie z listy uzupełniania przy użyciu filtrów. Język C# filtruje listy uzupełniania, które są wyświetlane dla następujących elementów:

  • Interfejsy i klasy bazowe: funkcja IntelliSense automatycznie usuwa niepotrzebne elementy z list uzupełniania interfejsu i klas bazowych, to usunięcie obejmuje bazy deklaracji klas oraz listy interfejsów i listy ograniczeń. Na przykład wyliczenia nie są wyświetlane na liście uzupełniania dla klas bazowych, ponieważ wyliczenia nie mogą być używane dla klas bazowych. Lista uzupełniania klas bazowych zawiera tylko interfejsy i przestrzenie nazw. Jeśli wybierzesz element na liście, a następnie wpiszesz klucz przecinka, funkcja IntelliSense usunie klasy podstawowe z listy uzupełniania. Dzieje się tak, ponieważ język C# nie obsługuje wielu dziedziczenia. To samo zachowanie występuje również w przypadku klauzul ograniczeń.

  • Atrybuty: po zastosowaniu atrybutu do typu lista uzupełniania jest filtrowana tak, aby lista zawierała tylko te typy, które pochodzą z przestrzeni nazw zawierających te typy. Na przykład Attribute.

  • Klauzule catch: na liście uzupełniania są wyświetlane tylko prawidłowe słowa kluczowe try-catch.

  • Inicjatory obiektów: na liście uzupełniania są wyświetlane tylko elementy członkowskie, które można zainicjować.

  • nowe słowo kluczowe: po wpiseniu new i naciśnięciu klawisza Spacja zostanie wyświetlona lista uzupełniania. Funkcja IntelliSense automatycznie wybiera element na liście na podstawie kontekstu w kodzie. Na przykład funkcja IntelliSense automatycznie wybiera elementy na liście uzupełniania deklaracji i instrukcji zwrotnych w metodach.

  • słowo kluczowe enum: po naciśnięciu klawisza Spacja po znaku równości dla przypisania wyliczenia zostanie wyświetlona lista uzupełniania. Funkcja IntelliSense automatycznie wybiera element na liście na podstawie kontekstu w kodzie. Na przykład funkcja IntelliSense automatycznie wybiera elementy na liście uzupełniania po wpisaniu słowa kluczowego return i po utworzeniu deklaracji.

  • jak i operatory: funkcja IntelliSense automatycznie wyświetla filtrowaną listę uzupełniania po naciśnięciu klawisza Spacja po wpisaniu słowa kluczowego as lub is .

  • Zdarzenia: podczas wpisywania słowa kluczowego eventlista uzupełniania zawiera tylko typy delegatów.

  • Pomoc parametru: funkcja IntelliSense automatycznie sortuje do pierwszego przeciążenia metody zgodnego z parametrami podczas ich wprowadzania. Jeśli dostępnych jest wiele przeciążeń metod, możesz użyć strzałek w górę i w dół, aby przejść do następnego możliwego przeciążenia na liście.

Ostatnio używane elementy członkowskie

Funkcja IntelliSense zapamiętuje ostatnio wybrane elementy członkowskie w wyskakującym polu Elementy członkowskie listy na potrzeby automatycznego uzupełniania nazw obiektów. Przy następnym użyciu listy elementów członkowskich ostatnio używane elementy członkowskie są wyświetlane u góry. Funkcja IntelliSense czyści historię ostatnio używanych elementów członkowskich między poszczególnymi sesjami programu Visual Studio.

override

Po wpiseniu przesłonięcia , a następnie naciśnięciu klawisza Spacja funkcja IntelliSense wyświetla wszystkie prawidłowe składowe klasy bazowej, które można zastąpić w podręcznym polu listy. Wpisując zwracany typ metody po override wyświetleniu monitu intelliSense, aby wyświetlić tylko metody zwracające ten sam typ. Jeśli funkcja IntelliSense nie może znaleźć żadnych dopasowań, wyświetla wszystkie elementy członkowskie klasy bazowej.

Funkcja IntelliSense rozszerzona o sztuczną inteligencję

Program Visual Studio IntelliCode udostępnia listy uzupełniania funkcji IntelliSense ulepszone pod względem sztucznej inteligencji. Funkcja IntelliCode przewiduje najbardziej prawdopodobną poprawną wartość interfejsu API, a nie tylko przedstawienie alfabetycznej listy elementów członkowskich. Używa on bieżącego kontekstu i wzorców kodu, aby udostępnić listę dynamiczną.

Automatyczne generowanie kodu

Dodawanie using

Operacja Dodaj przy użyciu funkcji IntelliSense automatycznie dodaje wymagane using dyrektywy do pliku kodu. Ta funkcja pozwala zachować skupienie się na kodzie, który piszesz, zamiast wymagać przeniesienia fokusu na inną część kodu.

Aby zainicjować operację Dodaj przy użyciu , umieść kursor na odwołaniu typu, którego nie można rozpoznać. Na przykład podczas tworzenia aplikacji konsolowej, a następnie dodawania XmlReader do treści Main metody czerwony wiersz zquiggle pojawia się w tym wierszu kodu, ponieważ nie można rozpoznać odwołania do typu. Następnie możesz wywołać operację Dodaj przy użyciu za pomocąmenu Szybkie akcje . Element menu using <namespace> jest widoczny tylko wtedy, gdy kursor jest umieszczony na nierozwiązanym odwołaniu.

W tym przykładzie, aby automatycznie dodać dyrektywę using do kodu, wybierz ikonę żarówki błędów, a następnie wybierz polecenie System.Xml;.

Zrzut ekranu przedstawiający operację Dodaj przy użyciu z obrazem podglądu.

Dodawanie brakujących dyrektyw using przy wklejaniu

Funkcja IntelliSense może automatycznie dodawać brakujące using dyrektywy do kodu podczas wklejania typu do pliku kodu. Ta funkcja pozwala zaoszczędzić czas, automatyzując zadanie dodawania brakujących dyrektyw using podczas wklejania typu do pliku.

Aby włączyć tę funkcję:

  1. Wybierz pozycję Opcje narzędzi>.
  2. Wybierz pozycję Edytor>tekstu C# (lub Visual Basic) >Zaawansowane w okienku po lewej stronie.
  3. W obszarze Używanie dyrektyw wybierz pozycję Dodaj brakujące dyrektywy using podczas wklejania.

Usuwanie i sortowanie przy użyciu

Opcja Usuń i sortuj przy użyciu sortuje i usuwa i extern deklaracje using bez zmieniania zachowania kodu źródłowego. W miarę upływu czasu pliki źródłowe mogą stać się zbyt duże i trudne do odczytania z powodu niepotrzebnych i niezorganizowanych using dyrektyw. Opcja Usuń i sortuj przy użyciu kompaktuje kod źródłowy przez usunięcie nieużywanych using dyrektyw i zwiększa czytelność przez ich sortowanie.

Aby użyć tej opcji, wybierz pozycję Edytuj>sortowanie IntelliSense>Przy użyciu na pasku menu lub kliknij prawym przyciskiem myszy w edytorze kodu i wybierz polecenie Usuń i sortuj przy użyciu.

Implementowanie interfejsu

Funkcja IntelliSense umożliwia zaimplementowanie interfejsu podczas pracy w edytorze kodu. Zwykle w celu prawidłowego zaimplementowania interfejsu należy utworzyć deklarację metody dla każdego elementu członkowskiego interfejsu w klasie. Po wpisaniu nazwy interfejsu w deklaracji klasy funkcja IntelliSense wyświetla żarówkę Szybkie akcje . Żarówka umożliwia automatyczne implementowanie interfejsu przy użyciu jawnego lub niejawnego nazewnictwa. W obszarze jawnego nazewnictwa deklaracje metody noszą nazwę interfejsu. W obszarze niejawnego nazewnictwa deklaracje metody nie wskazują interfejsu, do którego należą. Jawnie nazwana metoda interfejsu może być dostępna tylko za pośrednictwem wystąpienia interfejsu, a nie za pośrednictwem wystąpienia klasy. Aby uzyskać więcej informacji, zobacz Jawna implementacja interfejsu.

Interfejs implementowania generuje minimalną liczbę wycinków metody wymaganych do spełnienia interfejsu. Jeśli klasa bazowa implementuje części interfejsu, te wycinki nie są generowane ponownie.

Implementowanie abstrakcyjnej klasy bazowej

Funkcja IntelliSense umożliwia automatyczne implementowanie składowych abstrakcyjnej klasy bazowej podczas pracy w edytorze kodu. Zwykle w celu zaimplementowania składowych abstrakcyjnej klasy bazowej wymaga utworzenia nowej definicji metody dla każdej metody abstrakcyjnej klasy bazowej w klasie pochodnej. Po wpisaniu nazwy abstrakcyjnej klasy bazowej w deklaracji klasy funkcja IntelliSense wyświetla żarówkę Szybkie akcje . Żarówka umożliwia automatyczne implementowanie metod klasy bazowej.

Wycinki metody generowane przez funkcję implementowania abstrakcyjnej klasy bazowej są modelowane przez fragment kodu zdefiniowany w pliku MethodStub.snippet. Fragmenty kodu można modyfikować. Aby uzyskać więcej informacji, zobacz Przewodnik: tworzenie fragmentu kodu w programie Visual Studio.

Generowanie na podstawie użycia

Funkcja Generowanie na podstawie użycia umożliwia używanie klas i składowych przed ich zdefiniowaniem. Można wygenerować wycinkę dla dowolnej klasy, konstruktora, metody, właściwości, pola lub wyliczenia, których chcesz użyć, ale nie są zdefiniowane. Nowe typy i elementy członkowskie można wygenerować bez opuszczania bieżącej lokalizacji w kodzie. Pozwala to zminimalizować przerwy w przepływie pracy.

Pod każdym niezdefiniowanym identyfikatorem zostanie wyświetlona czerwona linia zquiggle. Po umieszczeniu wskaźnika myszy na identyfikatorze w etykietce narzędzia zostanie wyświetlony komunikat o błędzie. Aby wyświetlić odpowiednie opcje, użyj jednej z następujących procedur:

  • Wybierz niezdefiniowany identyfikator. Żarówka żarówki błędu Szybkie akcje jest wyświetlana pod identyfikatorem. Wybierz żarówkę błędu.

  • Wybierz niezdefiniowany identyfikator, a następnie naciśnij klawisze Ctrl+Period (.).

  • Kliknij prawym przyciskiem myszy niezdefiniowany identyfikator, a następnie wybierz pozycję Szybkie akcje i refaktoryzacje.

Mogą pojawić się następujące opcje:

  • Generowanie właściwości

  • Generowanie pola

  • Generowanie metody

  • Generowanie klasy

  • Generowanie nowego typu (dla klasy, struktury, interfejsu lub wyliczenia)

Generowanie programów obsługi zdarzeń

W edytorze kodu funkcja IntelliSense może pomóc w podłączeniu metod (procedur obsługi zdarzeń) do pól zdarzeń.

Po wpisaniu += operatora po polu zdarzenia w pliku .cs funkcja IntelliSense wyświetli monit o naciśnięcie klawisza Tab . Spowoduje to wstawienie nowego wystąpienia delegata wskazującego metodę obsługi zdarzenia.

Zrzut ekranu przedstawiający monitowaną metodę obsługi zdarzeń.

Jeśli naciśniesz klawisz Tab , funkcja IntelliSense automatycznie zakończy instrukcję i wyświetli odwołanie obsługi zdarzeń jako zaznaczony tekst w edytorze kodu. Aby ukończyć automatyczne podłączanie zdarzeń, funkcja IntelliSense monituje o ponowne naciśnięcie klawisza Tab w celu utworzenia pustego wycinka procedury obsługi zdarzeń.

Zrzut ekranu przedstawiający wygenerowaną metodę obsługi zdarzeń.

Jeśli ponownie naciśniesz klawisz Tab , funkcja IntelliSense doda wycinkę metody z poprawnym podpisem i umieszcza kursor w treści programu obsługi zdarzeń.

Jeśli nowy delegat utworzony przez funkcję IntelliSense odwołuje się do istniejącej procedury obsługi zdarzeń, funkcja IntelliSense komunikuje te informacje w etykietce narzędzia. Następnie można zmodyfikować to odwołanie; tekst jest już zaznaczony w edytorze kodu. W przeciwnym razie automatyczne łączenie zdarzeń zostało ukończone.

Uwaga

Użyj polecenia Navigate Backward w menu Widok (Ctrl+-), aby powrócić do instrukcji podłączania zdarzeń.