Introduction
Adding an event to a class is pretty simple: create your event.
public event EventHandler FilterChange;
Then, create a suitable method to signal it to subscribers:
protected virtual void OnFilterChange(EventArgs e)
{
EventHandler eh = FilterChange;
if (eh != null)
{
eh(this, e);
}
}
But I'm lazy. And I don't want to type all that each time! So, here we have a simple Visual Studio Snippet which types that lot for you - much the same way that "prop" gives you:
public int MyProperty { get; set; }
Using the Code
A snippet in Visual Studio is just an XML file, with some specific data fields:
="1.0"="utf-8"
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>Event Template</Title>
<Author>Paul (OriginalGriff) Griffin</Author>
<Description>Creates an Event template - includes the Event and the OnEvent method</Description>
<HelpUrl></HelpUrl>
<SnippetTypes />
<Keywords />
<Shortcut>evh</Shortcut>
</Header>
<Snippet>
<References />
<Imports />
<Declarations>
<Literal Editable="true">
<ID>Description</ID>
<Type></Type>
<ToolTip></ToolTip>
<Default>Description</Default>
<Function></Function>
</Literal>
<Literal Editable="true">
<ID>Name</ID>
<Type></Type>
<ToolTip></ToolTip>
<Default>Name</Default>
<Function></Function>
</Literal>
</Declarations>
<Code Language="csharp" Kind="method decl" Delimiter="$"><![CDATA[</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
You can create this using Visual Studio from "File...New...File" and selecting XML file, but when you have saved it, you will need to manually rename it to ".snippet" from ".XML", or you can download it from the link. You need to place this in the Visual Studio Snippets folder, which defaults to:
C:\Users\<UserName>\Documents\Visual Studio 2010\Code Snippets\Visual C#
For VS2019 the folder is slightly different:
C:\Users\<UserName>\Documents\Visual Studio 2019\Code Snippets\Visual C#\My Code Snippets
If you have a "My Code Snippets" folder, then it should go in there.
The simplest route is via Windows file explorer:
%USERPROFILE%\Documents\Visual Studio 2019\Code Snippets\Visual C#\My Code Snippets
Now, whenever you type the shortcut "evh
" and press TAB twice, it will insert:
public event EventHandler Name;
protected virtual void OnName(EventArgs e)
{
EventHandler eh = Name;
if (eh != null)
{
eh(this, e);
}
}
And prompt you to enter the description and name of the event.
History
- First version
- 2019-06-15 Added Visual Studio 2019.