Visual C# Code Snippets

Code snippets are ready-made snippets of code you can quickly insert into your code. For example, the for code snippet creates an empty for loop. Some code snippets are surround-with code snippets, which enable you to select lines of code, and then choose a code snippet which incorporates the selected lines of code. For example, when you select lines of code and then activate the for code snippet, it creates a for loop with those lines of code inside the loop block. Code snippets can make writing program code quicker, easier, and more reliable.

You can insert a code snippet at the cursor location, or insert a surround-with code snippet around the currently selected code. The Code Snippet Inserter is invoked through the Insert Code Snippet or Surround With commands on the IntelliSense menu, or by using the keyboard shortcuts CTRL+K and then X or CTRL+K and then S respectively.

The Code Snippet Inserter displays the code snippet name for all available code snippets. The Code Snippet Inserter also includes an input dialog box where you can type the name of the code snippet, or part of the code snippet name. The Code Snippet Inserter highlights the closest match to a code snippet name. Pressing TAB at any time will dismiss the Code Snippet Inserter and insert the currently selected code snippet. Typing ESC or clicking the mouse in the Code Editor will dismiss the Code Snippet Inserter without inserting a code snippet.

Default Code Snippets

By default the following code snippets are included in Visual Studio.

Name (or shortcut)

Description

Valid locations to insert snippet

#if

Creates a #if directive and a #endif directive.

Anywhere.

#region

Creates a #region directive and a #endregion directive.

Anywhere.

~

Creates a destructor for the containing class.

Inside a class.

attribute

Creates a declaration for a class that derives from Attribute.

Inside a namespace (including the global namespace), a class, or a struct.

checked

Creates a checked block.

Inside a method, an indexer, a property accessor, or an event accessor.

class

Creates a class declaration.

Inside a namespace (including the global namespace), a class, or a struct.

ctor

Creates a constructor for the containing class.

Inside a class.

cw

Creates a call to WriteLine.

Inside a method, an indexer, a property accessor, or an event accessor.

do

Creates a dowhile loop.

Inside a method, an indexer, a property accessor, or an event accessor.

else

Creates an else block.

Inside a method, an indexer, a property accessor, or an event accessor.

enum

Creates an enum declaration.

Inside a namespace (including the global namespace), a class, or a struct.

equals

Creates a method declaration that overrides the Equals method defined in the Object class.

Inside a class or a struct.

exception

Creates a declaration for a class that derives from an exception (Exception by default).

Inside a namespace (including the global namespace), a class, or a struct.

for

Creates a for loop.

Inside a method, an indexer, a property accessor, or an event accessor.

foreach

Creates a foreach loop.

Inside a method, an indexer, a property accessor, or an event accessor.

forr

Creates a for loop that decrements the loop variable after each iteration.

Inside a method, an indexer, a property accessor, or an event accessor.

if

Creates an if block.

Inside a method, an indexer, a property accessor, or an event accessor.

indexer

Creates an indexer declaration.

Inside a class or a struct.

interface

Creates an interface declaration.

Inside a namespace (including the global namespace), a class, or a struct.

invoke

Creates a block that safely invokes an event.

Inside a method, an indexer, a property accessor, or an event accessor.

iterator

Creates an iterator.

Inside a class or a struct.

iterindex

Creates a "named" iterator and indexer pair by using a nested class.

Inside a class or a struct.

lock

Creates a lock block.

Inside a method, an indexer, a property accessor, or an event accessor.

mbox

Creates a call to MessageBox.Show. You may have to add a reference to System.Windows.Forms.dll.

Inside a method, an indexer, a property accessor, or an event accessor.

namespace

Creates a namespace declaration.

Inside a namespace (including the global namespace).

prop

Creates an auto-implemented property declaration.

Inside a class or a struct.

propfull

Creates a property declaration with get and set accessors.

Inside a class or a struct.

propg

Creates a read-only auto-implemented property with a private "set" accessor.

Inside a class or a struct.

sim

Creates a staticint Main method declaration.

Inside a class or a struct.

struct

Creates a struct declaration.

Inside a namespace (including the global namespace), a class, or a struct.

svm

Creates a staticvoid Main method declaration.

Inside a class or a struct.

switch

Creates a switch block.

Inside a method, an indexer, a property accessor, or an event accessor.

try

Creates a try-catch block.

Inside a method, an indexer, a property accessor, or an event accessor.

tryf

Creates a try-finally block.

Inside a method, an indexer, a property accessor, or an event accessor.

unchecked

Creates an unchecked block.

Inside a method, an indexer, a property accessor, or an event accessor.

unsafe

Creates an unsafe block.

Inside a method, an indexer, a property accessor, or an event accessor.

using

Creates a using directive.

Inside a namespace (including the global namespace).

while

Creates a while loop.

Inside a method, an indexer, a property accessor, or an event accessor.

See Also

Tasks

How to: Use Surround-with Code Snippets

How to: Restore C# Refactoring Snippets

Reference

Code Snippet Functions

Concepts

Template Parameters

Other Resources

Code Snippets

How to: Create a New Snippet with Replacements