Поделиться через


Функции фрагмента кода

Для использования с фрагментами кода Visual C# доступно три функции. Функции указаны в элементе Элемент Function (фрагменты кода IntelliSense) фрагмента кода. Дополнительные сведения о создании фрагментов кода см. в разделе Создание и использование фрагментов кода IntelliSense.

Функции

В следующей таблице описаны функции, которые можно использовать с элементом Function во фрагментах кода.

Function

Описание

Язык

GenerateSwitchCases(EnumerationLiteral)

Генерирует оператор SWITCH и набор операторов CASE для членов перечисления, указанных параметром EnumerationLiteral. Параметр EnumerationLiteral должен быть ссылкой на литерал перечисления или тип перечисления.

Visual C#

ClassName()

Возвращает имя класса, содержащего вставленный код.

Visual C#

SimpleTypeName(TypeName)

Сокращает параметр TypeName до его простой формы в контексте, в котором был вызван фрагмент кода.

Visual C#

Пример

В следующем примере показан способ использования функции GenerateSwitchCases. При вставке этого фрагмента и при вводе перечисления в литерал $switch_on$, литерал $cases$ создает оператор case для каждого значения в перечислении.

<CodeSnippets xmlns="https://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>

В следующем примере показан способ использования функции ClassName. При вставке этого фрагмента литерал $classname$ заменяется именем включающего класса в этом положении в файле кода.

<CodeSnippets xmlns="https://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="vjsharp" Format="CData">
                <![CDATA[ 
                    public $classname$ ($type$ $name$)
                    {
                        this._$name$ = $name$;
                    }
                    private $type$ _$name$;
                ]]>
            </Code>
        </Snippet>
    </CodeSnippet>
</CodeSnippets>

В следующем примере показан способ использования функции SimpleTypeName. При вставке этого фрагмента в файл кода, литерал $SystemConsole$ будет заменен самой простой формой типа Console в контексте, в котором был вызван фрагмент.

<CodeSnippets xmlns="https://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>

См. также

Ссылки

Элемент Function (фрагменты кода IntelliSense)

Основные понятия

Справочник по схеме фрагментов кода