C# IntelliSense

C# IntelliSense je pomůcka pro dokončování kódu specifická pro jazyk. Je k dispozici při psaní kódu jazyka C# v editoru kódu a jeho ladění v příkazovém okně okamžitého režimu .

Seznamy dokončení

Seznamy dokončování IntelliSense v jazyce C# obsahují tokeny ze seznamu členů, kompletního wordu a dalších. Poskytuje rychlý přístup k:

  • Členové typu nebo oboru názvů

  • Názvy proměnných, příkazů a funkcí

  • Fragmenty kódu

  • Klíčová slova jazyka

  • Metody rozšíření

Seznamy dokončení v jazyce C# vyfiltrují irelevantní tokeny a předem vyberte tokeny na základě kontextu. Další informace najdete v tématu Filtrované seznamy dokončení.

Fragmenty kódu v seznamech dokončení

V jazyce C# seznam dokončení obsahuje fragmenty kódu, které vám pomůžou snadno vkládat předdefinovaná těla kódu do programu. Fragmenty kódu se zobrazí v seznamu dokončení jako text zástupce fragmentu kódu. Další informace o fragmentech kódu, které jsou ve výchozím nastavení dostupné v jazyce C#, najdete v tématu Fragmenty kódu jazyka C#.

Klíčová slova jazyka v seznamech dokončování

Seznam dokončení obsahuje klíčová slova jazyka C#, která vám pomůžou je vložit do programu. Další informace o klíčových slovech jazyka C# najdete v tématu Klíčová slova jazyka C#.

Metody rozšíření v seznamech dokončení

V jazyce C# seznam dokončení obsahuje rozšiřující metody, které jsou v oboru.

Rozšiřující metody používají jinou ikonu než metody instance. Pokud je metoda instance a metoda rozšíření se stejným názvem v oboru, zobrazí se v seznamu dokončení ikona metody rozšíření.

Poznámka:

U String objektů seznam dokončení nezobrazuje všechny rozšiřující metody.

Filtrované seznamy dokončení

IntelliSense odebere nepotřebné členy ze seznamu dokončování pomocí filtrů. Jazyk C# filtruje seznamy dokončení, které se zobrazí pro tyto položky:

  • Rozhraní a základní třídy: IntelliSense automaticky odebere nepotřebné položky ze seznamů dokončování rozhraní a základních tříd, toto odebrání zahrnuje základy deklarací tříd a seznamy rozhraní a seznamy omezení. Například výčty se nezobrazují v seznamu dokončení základních tříd, protože výčty nelze použít pro základní třídy. Seznam dokončení základních tříd obsahuje pouze rozhraní a obory názvů. Pokud vyberete položku v seznamu a potom zadáte klíč čárky, IntelliSense odebere základní třídy ze seznamu dokončení. Dělá to proto, že jazyk C# nepodporuje více dědičnosti. Stejné chování se také vyskytuje u klauzulí constraint.

  • Atributy: Při použití atributu na typ se seznam dokončení vyfiltruje tak, aby seznam obsahoval pouze ty typy, které sestupně z oborů názvů, které tyto typy obsahují. Například Attribute.

  • Klauzule Catch: V seznamu dokončení se zobrazí pouze platná klíčová slova try-catch.

  • Inicializátory objektů: V seznamu dokončení se zobrazí pouze členy, které lze inicializovat.

  • nové klíčové slovo: Když zadáte new a pak stisknete mezerník , zobrazí se seznam dokončení. IntelliSense automaticky vybere položku v seznamu na základě kontextu v kódu. IntelliSense například automaticky vybírá položky v seznamu dokončování pro deklarace a návratové příkazy v metodách.

  • Klíčové slovo výčtu : Když stisknete mezerník za symbol rovná se zadání výčtu, zobrazí se seznam dokončení. IntelliSense automaticky vybere položku v seznamu na základě kontextu v kódu. IntelliSense například automaticky vybere položky v seznamu dokončení po zadání klíčového return slova a při deklaraci.

  • as and is operators: IntelliSense automaticky zobrazí filtrovaný seznam dokončení, když po zadání as nebo is klíčového slova stisknete mezerník.

  • Události: Když zadáte klíčové slovo event, seznam dokončení obsahuje pouze typy delegátů.

  • Nápověda k parametru: IntelliSense automaticky seřadí do prvního přetížení metody, které odpovídá parametrům při jejich zadávání. Pokud je k dispozici více přetížení metod, můžete pomocí šipek nahoru a dolů přejít na další možné přetížení v seznamu.

Naposledy použité členy

IntelliSense si pamatuje členy, které jste nedávno vybrali v automaticky otevíraných polích Členové seznamu pro automatické dokončování názvu objektu. Při příštím použití seznamu členů se nahoře zobrazí naposledy použité členy. IntelliSense vymaže historii naposledy použitých členů mezi jednotlivými relacemi sady Visual Studio.

override

Když zadáte přepsání a potom stisknete mezerník, IntelliSense zobrazí všechny platné členy základní třídy, které můžete přepsat v automaticky otevíraných nákrních náplní. Zadáním návratového typu metody po override zobrazení výzvy IntelliSense zobrazíte pouze metody, které vracejí stejný typ. Pokud IntelliSense nemůže najít žádné shody, zobrazí všechny členy základní třídy.

IntelliSense s rozšířeným rozhraním AI

Visual Studio IntelliCode poskytuje seznamy dokončování IntelliSense s vylepšenou umělou inteligencí. IntelliCode předpovídá nejpravděpodobnější správné rozhraní API tak, aby se místo prezentace abecedního seznamu členů používalo jenom abecední seznam. Používá aktuální kontext a vzory kódu k poskytnutí dynamického seznamu.

Automatické generování kódu

Přidat direktivu using

Operace Add using IntelliSense automaticky přidá požadované using direktivy do souboru kódu. Tato funkce umožňuje zachovat si fokus na kód, který píšete, místo toho, abyste museli přesunout fokus na jinou část kódu.

Chcete-li zahájit operaci Přidat pomocí , umístěte kurzor na odkaz typu, který nelze rozpoznat. Když například vytvoříte konzolovou aplikaci a pak ji přidáte XmlReader do textu Main metody, zobrazí se na tomto řádku kódu červená vlnovka, protože odkaz na typ nelze rozpoznat. Operaci Přidat pak můžete vyvolat pomocínabídky Rychlé akce . Položka nabídky using <namespace> je viditelná pouze v případech, kdy je kurzor umístěn na nevyřešeném odkazu.

V tomto příkladu chcete automaticky přidat direktivu using do kódu, vyberte ikonu žárovky chyby a pak zvolte pomocí System.Xml;.

Snímek obrazovky znázorňující operaci Přidat pomocí s obrázkem náhledu

Přidání chybějících direktiv using při vložení

IntelliSense může do kódu automaticky přidávat chybějící using direktivy při vložení typu do souboru kódu. Tato funkce šetří čas automatizací úlohy přidání chybějících direktiv using při vkládání typu do souboru.

Jak tuto funkci povolit:

  1. Vyberte Možnosti nástrojů>.
  2. V levém podokně vyberte Textový editor>C# (nebo Visual Basic) >Upřesnit.
  3. V části Použití direktiv vyberte Přidat chybějící direktivy using při vložení.

Odebrání a řazení pomocí

Možnost Odebrat a seřadit pomocí seřadí a odebere a deklaruje using beze extern změny chování zdrojového kódu. V průběhu času se zdrojové soubory můžou stát příliš velkými a obtížně čitelnými kvůli zbytečným a neuspořádaným using direktivám. Možnost Remove and Sort Usings komprimuje zdrojový kód odebráním nepoužívaných using direktiv a zlepšuje čitelnost jejich řazením.

Chcete-li použít tuto možnost, vyberte v řádku nabídek možnost Upravit>použití řazení IntelliSense>nebo klikněte pravým tlačítkem v editoru kódu a vyberte Odebrat a seřadit pomocí.

Implementace rozhraní

IntelliSense nabízí možnost, která vám pomůže implementovat rozhraní při práci v editoru kódu. Za normálních okolností, chcete-li implementovat rozhraní správně, musíte vytvořit deklaraci metody pro každého člena rozhraní ve vaší třídě. Po zadání názvu rozhraní v deklaraci třídy intelliSense zobrazí žárovku Rychlých akcí . Žárovka vám dává možnost implementovat rozhraní automaticky pomocí explicitního nebo implicitního pojmenování. V rámci explicitního pojmenování deklarace metody mají název rozhraní. V případě implicitního pojmenování deklarace metody neoznačují rozhraní, ke kterému patří. Explicitně pojmenovaná metoda rozhraní je přístupná pouze prostřednictvím instance rozhraní, a ne prostřednictvím instance třídy. Další informace naleznete v tématu Explicitní implementace rozhraní.

Implement rozhraní generuje minimální počet procedur metod potřebných pro splnění rozhraní. Pokud základní třída implementuje části rozhraní, tyto zástupné procedury se nevygenerují.

Implementace abstraktní základní třídy

IntelliSense poskytuje možnost, která vám pomůže implementovat členy abstraktní základní třídy automaticky při práci v editoru kódu. Za normálních okolností pro implementaci členů abstraktní základní třídy vyžaduje vytvoření nové definice metody pro každou metodu abstraktní základní třídy v odvozené třídě. Jakmile do deklarace třídy zadáte název abstraktní základní třídy, IntelliSense zobrazí žárovku Rychlých akcí . Žárovka vám dává možnost implementovat metody základní třídy automaticky.

Zástupné procedury metody vygenerované funkcí Implement Abstract Base Class jsou modelovány fragmentem kódu definovaným v souboru MethodStub.fragment. Fragmenty kódu jsou upravitelné. Další informace najdete v tématu Návod: Vytvoření fragmentu kódu v sadě Visual Studio.

Generování z využití

Funkce Generovat z použití umožňuje používat třídy a členy před jejich definováním. Zástupný kód můžete vygenerovat pro libovolnou třídu, konstruktor, metodu, vlastnost, pole nebo výčt, které chcete použít, ale nejsou definovány. Nové typy a členy můžete vygenerovat bez opuštění aktuálního umístění v kódu. Tím se minimalizuje přerušení pracovního postupu.

Pod každým nedefinovaným identifikátorem se zobrazí červená vlnovka. Když na identifikátor najedete myší, zobrazí se v popisu chybová zpráva. Pokud chcete zobrazit příslušné možnosti, použijte jeden z následujících postupů:

  • Vyberte nedefinovaný identifikátor. Pod identifikátorem se zobrazí žárovka chyby Rychlé akce . Vyberte chybovou žárovku.

  • Vyberte nedefinovaný identifikátor a stiskněte kombinaci kláves Ctrl+Period (.).

  • Klikněte pravým tlačítkem myši na nedefinovaný identifikátor a pak vyberte Rychlé akce a refaktoringy.

Mohou se zobrazit následující možnosti:

  • Generování vlastnosti

  • Pole Generovat

  • Generování metody

  • Generování třídy

  • Generování nového typu (pro třídu, strukturu, rozhraní nebo výčet)

Generování obslužných rutin událostí

V editoru kódu vám IntelliSense může pomoct připojit metody (obslužné rutiny událostí) k polím událostí.

Když zadáte += operátor za polem události v souboru .cs , IntelliSense vás vyzve k stisknutí klávesy Tab . Tím se vloží nová instance delegáta, který odkazuje na metodu zpracovávající událost.

Snímek obrazovky znázorňující metodu obslužné rutiny události s výzvou k připojení

Pokud stisknete klávesu Tab , IntelliSense automaticky dokončí příkaz za vás a zobrazí odkaz obslužné rutiny události jako vybraný text v editoru kódu. K dokončení automatického připojení událostí vás IntelliSense vyzve, abyste znovu stiskli klávesu Tab a vytvořili prázdnou proceduru obslužné rutiny události.

Snímek obrazovky znázorňující vygenerovanou metodu obslužné rutiny události

Pokud znovu stisknete klávesu Tab , intelliSense přidá zástupný znak metody se správným podpisem a umístí kurzor do těla obslužné rutiny události.

Pokud nový delegát vytvořený technologií IntelliSense odkazuje na existující obslužnou rutinu události, IntelliSense tyto informace sdělí v popisu. Pak můžete tento odkaz upravit; text je již vybrán v editoru kódu. V opačném případě je automatické připojení událostí dokončeno.

Poznámka:

Pomocí příkazu Přejít dozadu v nabídce Zobrazení (Ctrl+-) se vraťte k příkazu hookup události.