首页编程eventhandler,EventHandler是什么

eventhandler,EventHandler是什么

编程之家 2023-11-01 178次浏览

大家好,关于eventhandler很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于EventHandler是什么的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

eventhandler,EventHandler是什么

EventHandler是什么

表示将处理不包含事件数据的事件的方法。

命名空间:System

程序集:mscorlib(在 mscorlib.dll中)

C#

[SerializableAttribute]

[ComVisibleAttribute(true)]

eventhandler,EventHandler是什么

public delegate void EventHandler(

Object sender,

EventArgs e

)

参数

sender

eventhandler,EventHandler是什么

事件源。

e

不包含任何事件数据的 EventArgs。

.NET Framework中的事件模型基于具有事件委托,该委托将事件与事件处理程序连接。引发事件需要两个元素:

标识对事件提供响应的方法的委托。

保存事件数据的类。

委托是一个定义签名的类型,即方法的返回值类型和参数列表类型。可以使用委托类型来声明一个变量,该变量可以引用与委托签名相同的所有方法。

事件处理程序委托的标准签名定义一个没有返回值的方法,其第一个参数的类型为 Object,它引用引发事件的实例,第二个参数从 EventArgs类型派生,它保存事件数据。如果事件不生成事件数据,则第二个参数只是 EventArgs的一个实例。否则,第二个参数为从 EventArgs派生的自定义类型,提供保存事件数据所需的全部字段或属性。

EventHandler是一个预定义的委托,专用于表示不生成数据的事件的事件处理程序方法。如果事件生成数据,则必须提供自己的自定义事件数据类型,并且必须要么创建一个委托,其中第二个参数的类型为自定义类型,要么使用泛型 EventHandler委托类并用自定义类型替代泛型类型参数。

若要将事件与处理事件的方法关联,请向事件添加委托的实例。除非移除了该委托,否则每当发生该事件时就调用事件处理程序。

有关事件处理程序委托的更多信息,请参见事件和委托。

下面的代码示例演示不使用事件数据的事件处理程序委托的声明。EventHandler类是事件委托的类型,sender是引发事件的对象,而 e则是不包含任何数据的事件数据对象。示例的第二行代码为类中没有数据的事件定义事件成员。

public delegate void EventHandler(Object sender, EventArgs e);

public event EventHandler NoDataEventHandler;

C#程序EventHandler不理解

EventHandler即事件委托,表示用于处理不具有事件数据的事件的方法。

字面上理解就是一个事件处理器,将一个事件与处理事件的方法联系起来的一种机制。

C++中通过函数指针来完成的。

在C#中的事件基于委托模型。委托模型遵守观察者设计模式,使订阅者(接收或处理事件的类)能够向提供方(发送或引发事件的类)注册并接收相关通知。

步骤:

首先声明一个委托,一般命名为:NameEventHandler

//这些委托没有返回类型值,并且接受两个参数(事件源的对象和事件数据的对象)。

public delegate void ThresholdReachedEventHandler(object sender, ThresholdReachedEventArgs e);

然后声明一个事件,并指定事件的委托类型

// event关键字代表事件,返回类型为委托;

public event EventHandler事件名;

同时,创建引发事件的方法,一般命名为:OnEventName。

//通常为了引发事件,会添加一个标记为protected和virtual的方法,以允许派生类重写引发事件的逻辑。

protected virtual void OnThresholdReached(EventArgs e)

{

EventHandler handler= ThresholdReached;

if(handler!= null)

{

handler(this, e);

}

}

再定义一个事件处理程序方法,处理事件。

static void c_ThresholdReached(object sender, EventArgs e)

{

Console.WriteLine("The threshold was reached.");

}

最后使用加法赋值运算符(+=)来为事件附加事件处理程序。+=表示添加事件,-=表示删除事件。

// Counter类中需要拥有一个名为ThresholdReached的事件

Counter c= new Counter();

c.ThresholdReached+= c_ThresholdReached;

//以下是老的C#1.0的语法

// c.ThresholdReached+= new ThresholdReachedEventHandler(c_ThresholdReached);

以下是C# EventHandler委托的一个类比解释

例子:

this.Activated+= new EventHandler(Form1_Activated);

这是一个委托的原理.

this.Activated=你吃完饭;

Form1_Activated=喊我一声

意思就是把这两个事放在一起,意思就是叫你吃完饭了喊我一声。我委托你吃完饭了,喊我一声。这样我就不用过一会就来看一下你吃完了没有了,已经委托你了。

扩展资料:

语法

Visual Basic(声明)

<SerializableAttribute> _

<ComVisibleAttribute(True)> _

Public Delegate Sub EventHandler( _

sender As Object, _

e As EventArgs _

)

Visual Basic(用法)

Dim instance As New EventHandler(AddressOf HandlerMethod)

C#

[SerializableAttribute]

[ComVisibleAttribute(true)]

public delegate void EventHandler(

Object sender,

EventArgs e

)

C++

[SerializableAttribute]

[ComVisibleAttribute(true)]

public delegate void EventHandler(

Object^ sender,

EventArgs^ e

)

参考资料:

百度百科——EventHandler

c#Event事件

1:这是自己声明的一个事件,就是自定义事件。后面跟个委托,是为了事件发生时调用与委托相符的函数。OnInventoryChangeHandler这个就是方法的名字。

2:这个指出事件在什么时候发生。当UpdateInventory函数调用时,就发生刚才的事件。就像一个窗体,你关闭时调用close()方法,closing事件就会发生。

OnInventoryChangeHandler(this, e);这是指出方法发生时的参数,

3:这个是注册事件,就相当于告诉当前类,这个事件发生时,当用哪个方法。

2和3,一个是哪个函数触发事件,一个是事件调用哪个函数。

C#中eventhandler及eventargs

Button.Click事件C#定义方式:

public event EventHandler Click;

Click事件是EventHandler类型的。

button.CLick事件只能接受EventHandler类型的委托,你给他一个自定义的ev1类型的委托运行时候格式不匹配会隐式转换,转化不了就异常了。

在老C#中EventHandler指的是一个需要定义一个delegate,这个delegate是回调的规范。例如:

public delegate void CustomEventHandler(object sender, CustomEventArgs a);

在新C#中,内置了一个EventHandler<T>范型。

event是一个关键字,用event关键字可以定义一个event对象。

public event CustomEventHandler RaiseCustomEvent;

在新C#下,可以像下面这么写:

public event EventHandler<CustomEventArgs> RaiseCustomEvent;

最后,参数要从EventArgs类继承。

关于eventhandler和EventHandler是什么的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

厦门seo公司(厦门网站seo优化) 潍坊seo(潍坊灯具市场有哪些)