C# 코드 조각

Visual Studio에서 코드 조각을 사용하여 C# 코드 파일에 일반적으로 사용되는 코드를 추가할 수 있습니다. 코드 조각을 사용하면 빠르고 쉽게, 안정적으로 프로그램 코드를 작성할 수 있습니다.

확장 코드 조각은 지정된 삽입 지점에 추가됩니다. 코드 감싸기 코드 조각은 선택한 코드 주위에 추가되며 C# 및 C++에서만 사용할 수 있습니다. 코드 조각을 사용하여 코드를 삽입하거나 둘러싸는 방법에 대한 지침은 코드 조각을 참조 하세요.

코드 조각 참조

코드 조각은 C# 및 C++에서 거의 동일한 방식으로 작동하지만 기본 코드 조각 집합은 다릅니다. 다음 C# 코드 조각은 기본적으로 Visual Studio에 포함됩니다.

이름 또는 바로 가기 설명 유효한 삽입 위치
#if #if 지시문과 #endif 지시문을 만듭니다. 원하는 위치
#region #region 지시문과 #endregion 지시문을 만듭니다. 원하는 위치
~ 포함하는 클래스에 대한 finalizer(소멸자)를 만듭니다. 클래스 내부
attribute Attribute에서 파생되는 클래스에 대한 선언을 만듭니다. 네임스페이스(전역 네임스페이스 포함), 클래스 또는 구조체 내부
checked checked 블록을 만듭니다. 메서드, 인덱서, 속성 접근자 또는 이벤트 접근자 내부
class class 선언을 만듭니다. 네임스페이스(전역 네임스페이스 포함), 클래스 또는 구조체 내부
ctor 포함하는 클래스에 대한 생성자를 만듭니다. 클래스 내부
cw WriteLine 호출을 만듭니다. 메서드, 인덱서, 속성 접근자 또는 이벤트 접근자 내부
do dowhile 루프를 만듭니다. 메서드, 인덱서, 속성 접근자 또는 이벤트 접근자 내부
else if-else 블록을 만듭니다. 메서드, 인덱서, 속성 접근자 또는 이벤트 접근자 내부
열거형 enum 선언을 만듭니다. 네임스페이스(전역 네임스페이스 포함), 클래스 또는 구조체 내부
같음 Object 클래스에 정의된 Equals 메서드를 재정의하는 메서드 선언을 만듭니다. 클래스 또는 구조체 내부
exception 예외(기본적으로 Exception)에서 파생되는 클래스에 대한 선언을 만듭니다. 네임스페이스(전역 네임스페이스 포함), 클래스 또는 구조체 내부
for for 루프를 만듭니다. 메서드, 인덱서, 속성 접근자 또는 이벤트 접근자 내부
foreach foreach 루프를 만듭니다. 메서드, 인덱서, 속성 접근자 또는 이벤트 접근자 내부
forr 각 반복 후에 루프 변수가 감소하는 for 루프를 만듭니다. 메서드, 인덱서, 속성 접근자 또는 이벤트 접근자 내부
if if 블록을 만듭니다. 메서드, 인덱서, 속성 접근자 또는 이벤트 접근자 내부
인덱서 indexer 선언을 만듭니다. 클래스 또는 구조체 내부
인터페이스 interface 선언을 만듭니다. 네임스페이스(전역 네임스페이스 포함), 클래스 또는 구조체 내부
invoke 안전하게 이벤트를 호출하는 블록을 만듭니다. 메서드, 인덱서, 속성 접근자 또는 이벤트 접근자 내부
iterator 반복기를 만듭니다. 클래스 또는 구조체 내부
iterindex 중첩 클래스를 named 사용하여 반복기 및 인덱서 쌍을 만듭니다. 클래스 또는 구조체 내부
lock lock 블록을 만듭니다. 메서드, 인덱서, 속성 접근자 또는 이벤트 접근자 내부
mbox System.Windows.Forms.MessageBox.Show 호출을 만듭니다. System.Windows.Forms.dll 대한 참조를 추가해야 할 수도 있습니다. 메서드, 인덱서, 속성 접근자 또는 이벤트 접근자 내부
네임스페이스 namespace 선언을 만듭니다. 전역 네임스페이스를 포함한 네임스페이스 내부.
prop 자동임플렉션된 속성 선언을 만듭니다. 클래스 또는 구조체 내부
propfull getset 접근자를 사용하여 속성 선언을 만듭니다. 클래스 또는 구조체 내부
propg 프라이빗 set 접근자를 사용하여 읽기 전용 자동 구현 속성을 만듭니다. 클래스 또는 구조체 내부
sim staticint Main 메서드 선언을 만듭니다. 클래스 또는 구조체 내부
struct struct 선언을 만듭니다. 네임스페이스(전역 네임스페이스 포함), 클래스 또는 구조체 내부
svm staticvoid Main 메서드 선언을 만듭니다. 클래스 또는 구조체 내부
switch switch 블록을 만듭니다. 메서드, 인덱서, 속성 접근자 또는 이벤트 접근자 내부
다음을 시도해 보세요. try-catch 블록을 만듭니다. 메서드, 인덱서, 속성 접근자 또는 이벤트 접근자 내부
tryf try-finally 블록을 만듭니다. 메서드, 인덱서, 속성 접근자 또는 이벤트 접근자 내부
unchecked unchecked 블록을 만듭니다. 메서드, 인덱서, 속성 접근자 또는 이벤트 접근자 내부
unsafe unsafe 블록을 만듭니다. 메서드, 인덱서, 속성 접근자 또는 이벤트 접근자 내부
using using 지시문을 만듭니다. 전역 네임스페이스를 포함한 네임스페이스 내부.
while while 루프를 만듭니다. 메서드, 인덱서, 속성 접근자 또는 이벤트 접근자 내부

C# 코드 조각 함수

함수는 코드 조각의 Function 요소에 지정됩니다. 다음 표에서는 C# 코드 조각의 요소와 함께 Function 사용할 수 있는 세 가지 함수에 대해 설명합니다.

함수 설명
GenerateSwitchCases(EnumerationLiteral) EnumerationLiteral 매개 변수로 지정된 열거형 멤버에 대한 switch 문과 case 문 집합을 생성합니다. 매개 변수는 EnumerationLiteral 열거형 리터럴 또는 열거형 형식에 대한 참조여야 합니다.
ClassName() 삽입된 코드 조각을 포함하는 클래스의 이름을 반환합니다.
SimpleTypeName(TypeName) 코드 조각이 TypeName 호출된 컨텍스트에서 매개 변수를 가장 간단한 형식으로 줄입니다.

GenerateSwitchCases 예제

다음 예제에서는 GenerateSwitchCases 함수를 사용하는 방법을 보여 줍니다. 이 코드 조각을 삽입하고 리터럴 $cases$$switch_on$ 열거형을 입력하면 리터럴은 열거형의 모든 값에 대한 문을 생성합니다case.

<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>

ClassName 예제

다음 예제에서는 ClassName 함수를 사용하는 방법을 보여 줍니다. 이 코드 $classname$ 조각을 삽입하면 리터럴이 코드 파일의 해당 위치에 있는 바깥쪽 클래스의 이름으로 바뀝다.

<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>

SimpleTypeName 예제

이 예제는 SimpleTypeName 함수를 사용하는 방법을 보여 줍니다. 코드 파일에 $SystemConsole$ 이 코드 조각을 삽입하면 리터럴이 코드 조각을 호출한 컨텍스트에서 가장 간단한 형식 형식 Console 으로 바뀝 있습니다.

<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>