为什么覆盖函数没有发送者对象?

时间:2016-05-21 06:45:13

标签: c# asp.net

我是C#的新手,当我在asp中创建自定义控件时,在我脑海中创建了一个问题:为什么覆盖函数没有sender对象?

例如:

protected override void OnRowCreated(GridViewRowEventArgs e)

但是当我们在代码中使用此事件时,会有一个名为" sender"

的对象类型的变量

2 个答案:

答案 0 :(得分:5)

这些以 On 开头的方法不需要接收已提出事件的 ,因为它们是发件人的一部分,this发件人(声明整个事件的类的实例)。

当有人订阅某个特定事件时,可能会说它可能是另一个类,你可能需要知道是谁提出了这个事件。

答案 1 :(得分:0)

具有protected override void On*(*EventArgs e)等签名的方法允许派生类型引发父类中定义的事件。由于这些是为自己的实例引发事件的方法,因此他们需要使用this来获取发送方对象。