65.9K
CodeProject 正在变化。 阅读更多。
Home

添加事件的简单代码片段

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.98/5 (33投票s)

2012年6月8日

CPOL

1分钟阅读

viewsIcon

39907

downloadIcon

352

向类中添加事件很简单,但需要输入一些内容。我比较懒,所以希望 Visual Studio 来完成这项工作。这个代码片段的工作方式与“prop”片段相同。

引言

向类中添加事件非常简单:创建你的事件。

public event EventHandler FilterChange;

然后,创建一个合适的方法来向订阅者发出信号。

protected virtual void OnFilterChange(EventArgs e)
    {
    EventHandler eh = FilterChange;
    if (eh != null)
        {
        eh(this, e);
        }
    }

但是我很懒。我不想每次都输入这么多内容!所以,这里有一个简单的 Visual Studio 代码片段,可以帮你输入所有这些内容——就像“prop”为你提供的那样。

public int MyProperty { get; set; } 

Using the Code

Visual Studio 中的代码片段只是一个 XML 文件,包含一些特定的数据字段。

<?xml version="1.0" encoding="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[/// <summary>
/// Event to indicate $Description$
/// </summary>
public event EventHandler $Name$;
/// <summary>
/// Called to signal to subscribers that $Description$
/// </summary>
/// <param name="e"></param>
protected virtual void On$Name$(EventArgs e)
    {
    EventHandler eh = $Name$;
    if (eh != null)
        {
        eh(this, e);
        }
    }]]></Code>
    </Snippet>
  </CodeSnippet>
</CodeSnippets>

你可以使用 Visual Studio 从“文件...新建...文件”中选择 XML 文件来创建它,但保存后,你需要手动将文件名从“.XML”重命名为“.snippet”,或者你可以从链接下载它。你需要将它放在 Visual Studio 的代码片段文件夹中,默认情况下是

 C:\Users\<UserName>\Documents\Visual Studio 2010\Code Snippets\Visual C#

对于 VS2019,文件夹略有不同

C:\Users\<UserName>\Documents\Visual Studio 2019\Code Snippets\Visual C#\My Code Snippets

如果你有一个“我的代码片段”文件夹,那么它应该放在那里。

最简单的方法是通过 Windows 文件资源管理器。

%USERPROFILE%\Documents\Visual Studio 2019\Code Snippets\Visual C#\My Code Snippets

现在,每当你输入快捷键“evh”并按两次 TAB 键时,它就会插入

/// <summary>
/// Event to indicate Description
/// </summary>
public event EventHandler Name;
/// <summary>
/// Called to signal to subscribers that Description
/// </summary>
/// <param name="e"></param>
protected virtual void OnName(EventArgs e)
    {
    EventHandler eh = Name;
    if (eh != null)
        {
        eh(this, e);
        }
    }

并提示你输入事件的描述和名称。

历史

  • 第一版
  • 2019-06-15 添加了 Visual Studio 2019。
© . All rights reserved.