Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W programie Visual Studio możesz użyć fragmentów kodu, aby dodać często używany kod do plików kodu języka C#. Fragmenty kodu mogą przyspieszyć, łatwiej i bardziej niezawodnie pisać kod programu.
Fragmenty kodu rozszerzenia są dodawane w określonych punktach wstawiania. Fragmenty kodu otoczone są dodawane wokół wybranego kodu i są dostępne tylko dla języków C# i C++. Aby uzyskać instrukcje dotyczące wstawiania lub otaczania kodu fragmentami kodu, zobacz Fragmenty kodu.
Dokumentacja fragmentu kodu
Fragmenty kodu działają podobnie w językach C# i C++, ale zestaw domyślnych fragmentów kodu jest inny. Następujące fragmenty kodu w języku C# są domyślnie uwzględniane w programie Visual Studio:
| Nazwa lub skrót | opis | Prawidłowe lokalizacje wstawiania |
|---|---|---|
| #if | Tworzy dyrektywę #if i dyrektywę #endif . | Gdziekolwiek. |
| #region | Tworzy dyrektywę #region i dyrektywę #endregion . | Gdziekolwiek. |
| ~ | Tworzy finalizator (destruktor) dla zawierającej klasy. | Wewnątrz klasy. |
| attribute | Tworzy deklarację klasy, która pochodzi z klasy Attribute. | Wewnątrz przestrzeni nazw (w tym globalnej przestrzeni nazw), klasy lub struktury. |
| checked | Tworzy zaznaczony blok. | Wewnątrz metody indeksator, metody dostępu do właściwości lub metody dostępu zdarzenia. |
| class | Tworzy deklarację klasy. | Wewnątrz przestrzeni nazw (w tym globalnej przestrzeni nazw), klasy lub struktury. |
| ctor | Tworzy konstruktor dla zawierającej klasy. | Wewnątrz klasy. |
| Cw | Tworzy wywołanie metody WriteLine. | Wewnątrz metody indeksator, metody dostępu do właściwości lub metody dostępu zdarzenia. |
| do | Tworzy pętlę czasową do wykonania. | Wewnątrz metody indeksator, metody dostępu do właściwości lub metody dostępu zdarzenia. |
| else | Tworzy blok if-else. | Wewnątrz metody indeksator, metody dostępu do właściwości lub metody dostępu zdarzenia. |
| wyliczenie | Tworzy deklarację wyliczenia . | Wewnątrz przestrzeni nazw (w tym globalnej przestrzeni nazw), klasy lub struktury. |
| equals | Tworzy deklarację metody, która zastępuje metodę zdefiniowaną Equals Object w klasie. | Wewnątrz klasy lub struktury. |
| wyjątek | Tworzy deklarację dla klasy, która pochodzi z wyjątku (Exception domyślnie). | Wewnątrz przestrzeni nazw (w tym globalnej przestrzeni nazw), klasy lub struktury. |
| dla | Tworzy pętlę for . | Wewnątrz metody indeksator, metody dostępu do właściwości lub metody dostępu zdarzenia. |
| foreach | Tworzy pętlę foreach . | Wewnątrz metody indeksator, metody dostępu do właściwości lub metody dostępu zdarzenia. |
| forr | Tworzy pętlę for , która dekrementuje zmienną pętli po każdej iteracji. | Wewnątrz metody indeksator, metody dostępu do właściwości lub metody dostępu zdarzenia. |
| jeżeli | Tworzy blok if . | Wewnątrz metody indeksator, metody dostępu do właściwości lub metody dostępu zdarzenia. |
| indeksator | Tworzy deklarację indeksatora. | Wewnątrz klasy lub struktury. |
| interfejs | Tworzy deklarację interfejsu. | Wewnątrz przestrzeni nazw (w tym globalnej przestrzeni nazw), klasy lub struktury. |
| wywołać | Tworzy blok, który bezpiecznie wywołuje zdarzenie. | Wewnątrz metody indeksator, metody dostępu do właściwości lub metody dostępu zdarzenia. |
| iterator | Tworzy iterator. | Wewnątrz klasy lub struktury. |
| iterindex | Tworzy parę iteratora named i indeksatora przy użyciu klasy zagnieżdżonej. |
Wewnątrz klasy lub struktury. |
| lock | Tworzy blok blokady. | Wewnątrz metody indeksator, metody dostępu do właściwości lub metody dostępu zdarzenia. |
| mbox | Tworzy wywołanie metody System.Windows.Forms.MessageBox.Show. Może być konieczne dodanie odwołania do System.Windows.Forms.dll. | Wewnątrz metody indeksator, metody dostępu do właściwości lub metody dostępu zdarzenia. |
| namespace | Tworzy deklarację przestrzeni nazw . | Wewnątrz przestrzeni nazw, w tym globalnej przestrzeni nazw. |
| rekwizyt | Tworzy automatycznie zaimplementowaną deklarację właściwości . | Wewnątrz klasy lub struktury. |
| propfull | Tworzy deklarację właściwości z metodami get i set metodami dostępu. |
Wewnątrz klasy lub struktury. |
| propg | Tworzy automatycznie zaimplementowaną właściwość tylko do odczytu z dostępem prywatnymset. |
Wewnątrz klasy lub struktury. |
| Sim | Tworzy statyczną deklarację metody main int. | Wewnątrz klasy lub struktury. |
| struktura | Tworzy deklarację struktury . | Wewnątrz przestrzeni nazw (w tym globalnej przestrzeni nazw), klasy lub struktury. |
| svm | Tworzy statyczną deklarację metody main void. | Wewnątrz klasy lub struktury. |
| switch | Tworzy blok przełącznika. | Wewnątrz metody indeksator, metody dostępu do właściwości lub metody dostępu zdarzenia. |
| try | Tworzy blok try-catch. | Wewnątrz metody indeksator, metody dostępu do właściwości lub metody dostępu zdarzenia. |
| tryf | Tworzy blok try-finally. | Wewnątrz metody indeksator, metody dostępu do właściwości lub metody dostępu zdarzenia. |
| unchecked | Tworzy niezaznakowany blok. | Wewnątrz metody indeksator, metody dostępu do właściwości lub metody dostępu zdarzenia. |
| unsafe | Tworzy niebezpieczny blok. | Wewnątrz metody indeksator, metody dostępu do właściwości lub metody dostępu zdarzenia. |
| using | Tworzy dyrektywę using . | Wewnątrz przestrzeni nazw, w tym globalnej przestrzeni nazw. |
| while | Tworzy pętlę czasową. | Wewnątrz metody indeksator, metody dostępu do właściwości lub metody dostępu zdarzenia. |
Funkcje fragmentu kodu w języku C#
Funkcje są określane w elememencie Function fragmentu kodu. W poniższej tabeli opisano trzy funkcje dostępne do użycia z elementem Function w fragmentach kodu języka C#.
| Function | opis |
|---|---|
GenerateSwitchCases(EnumerationLiteral) |
Generuje instrukcję switch i zestaw instrukcji wielkości liter dla elementów członkowskich wyliczenia określonego EnumerationLiteral przez parametr . Parametr EnumerationLiteral musi być odwołaniem do literału wyliczenia lub typu wyliczenia. |
ClassName() |
Zwraca nazwę klasy zawierającej wstawiony fragment kodu. |
SimpleTypeName(TypeName) |
TypeName Zmniejsza parametr do najprostszej postaci w kontekście, w którym został wywołany fragment kodu. |
Przykład generateSwitchCases
W poniższym przykładzie pokazano, jak używać GenerateSwitchCases funkcji. Po wstawieniu tego fragmentu kodu i wprowadzeniu wyliczenia do $switch_on$ literału $cases$ literał literał generuje instrukcję case dla każdej wartości w wyliczenia.
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>switch</Title>
<Shortcut>switch</Shortcut>
<Description>Code snippet for switch statement</Description>
<Author>Microsoft Corporation</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>expression</ID>
<ToolTip>Expression to switch on</ToolTip>
<Default>switch_on</Default>
</Literal>
<Literal Editable="false">
<ID>cases</ID>
<Function>GenerateSwitchCases($expression$)</Function>
<Default>default:</Default>
</Literal>
</Declarations>
<Code Language="csharp">
<![CDATA[
switch ($expression$)
{
$cases$
}
]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
Przykład ClassName
W poniższym przykładzie pokazano, jak używać ClassName funkcji. Po wstawieniu tego fragmentu kodu $classname$ literał jest zastępowany nazwą otaczającej klasy w tej lokalizacji w pliku kodu.
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>Common constructor pattern</Title>
<Shortcut>ctor</Shortcut>
<Description>Code Snippet for a constructor</Description>
<Author>Microsoft Corporation</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>type</ID>
<Default>int</Default>
</Literal>
<Literal>
<ID>name</ID>
<Default>field</Default>
</Literal>
<Literal default="true" Editable="false">
<ID>classname</ID>
<ToolTip>Class name</ToolTip>
<Function>ClassName()</Function>
<Default>ClassNamePlaceholder</Default>
</Literal>
</Declarations>
<Code Language="csharp" Format="CData">
<![CDATA[
public $classname$ ($type$ $name$)
{
this._$name$ = $name$;
}
private $type$ _$name$;
]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
Przykład simpleTypeName
W tym przykładzie SimpleTypeName pokazano, jak używać funkcji. Po wstawieniu tego fragmentu kodu do pliku $SystemConsole$ kodu literał jest zastępowany najprostszą formą Console typu w kontekście, w którym wywołano fragment kodu.
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>Console_WriteLine</Title>
<Shortcut>cw</Shortcut>
<Description>Code snippet for Console.WriteLine</Description>
<Author>Microsoft Corporation</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal Editable="false">
<ID>SystemConsole</ID>
<Function>SimpleTypeName(global::System.Console)</Function>
</Literal>
</Declarations>
<Code Language="csharp">
<![CDATA[
$SystemConsole$.WriteLine();
]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>