Функции фрагмента кода
Обновлен: Ноябрь 2007
Для использования с фрагментами кода Visual C# доступно три функции. Функции указаны в элементе Элемент Function (фрагменты кода IntelliSense) фрагмента кода. Дополнительные сведения о создании фрагментов кода см. в разделе Создание и использование фрагментов кода IntelliSense.
Функции
В следующей таблице описаны функции, которые можно использовать с элементом 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>
См. также
Основные понятия
Справочник по схеме фрагментов кода