C#事件(Event): 发布符合 .NET Framework Guidelines 的事件
2021-05-18 14:30
标签:conf 触发事件 color eve oid style 数据 信息 hand 本文翻译整理自:https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/events/how-to-publish-events-that-conform-to-net-framework-guidelines 以下的示例展示了怎样添加符合 .NET Framework 模式事件到自定义的类和结构体中。.NET Framework中所有的类库都是基于 EventHandler delegate,定义如下: 尽管在类中定义的事件可以是任何有效的 delegate 类型,甚至 delegate 可以返回一个类型,但是通常建议事件以 .NET Framework 模式为准,基于 EventHandler。 发布基于 EventHandler 模式的事件 完整示例: C#事件(Event): 发布符合 .NET Framework Guidelines 的事件 标签:conf 触发事件 color eve oid style 数据 信息 hand 原文地址:https://www.cnblogs.com/huangzhengguo/p/11731353.htmlpublic delegate void EventHandler(object sender, EventArgs e);
public class CustomEventArgs : EventArgs
{
public CustomEventArgs(string s)
{
msg = s;
}
private string msg;
public string Message
{
get { return msg; }
}
}
public delegate void CustomEventHandler(object sender, CustomEventArgs a);
第一种:如果不需要传递额外的数据,不需要自己定义 delegate 类型,在 System 命名空间中已经有预定义的事件类型 EventHandler ,直接使用即可:public event EventHandler RaiseCustomEvent;
第二种:需要传递额外数据,使用非泛型版本,使用自己定义的 delegate 类型public event CustomEventHandler RaiseCustomEvent;
第三种:需要传递额外数据,使用泛型版本(.NET Framework 2.0 及以后版本可用)的 EventHandlerpublic event EventHandler
namespace DotNetEvents
{
using System;
using System.Collections.Generic;
// 定义事件参数:包含一个额外的 message 字段
public class CustomEventArgs : EventArgs
{
public CustomEventArgs(string s)
{
message = s;
}
private string message;
public string Message
{
get { return message; }
set { message = value; }
}
}
// 发布者
class Publisher
{
// 使用 EventHandler
上一篇:cygwin的安装
下一篇:C# while循环
文章标题:C#事件(Event): 发布符合 .NET Framework Guidelines 的事件
文章链接:http://soscw.com/index.php/essay/87229.html