声明事件:
public delegate void TestEventDelegate(object sender, System.EventArgs e);public class EventSource
{
public event TestEventDelegate TestEvent;
private void RaiseTestEvent() { /* ... */ }
}
触发事件:
private void RaiseTestEvent()
{
TestEventDelegate temp = TestEvent; if (temp != null)
{
temp(this, new System.EventArgs());
}
}
以上是摘自MSDN中的一段代码,就是想请教一下各位 “temp(this, new System.EventArgs());”中的两个参数都具体代表的啥?尤其msdn中解释说“.NET Framework 中事件的签名中,通常第一个参数为引用事件源的对象,第二个参数为一个传送与事件相关的数据的类。”就是对于他说的那两个参数的含义不明白,具体是什么啊?谢谢各位了。
还有以下代码:
public class EventReceiver
{
public void ReceiveTestEvent(object sender, System.EventArgs e)
{
System.Console.Write("Event received from ");
System.Console.WriteLine(sender.ToString());
}
}
都属于同一个问题,sender一般是指的什么对象?谢谢各位了。
public delegate void TestEventDelegate(object sender, System.EventArgs e);public class EventSource
{
public event TestEventDelegate TestEvent;
private void RaiseTestEvent() { /* ... */ }
}
触发事件:
private void RaiseTestEvent()
{
TestEventDelegate temp = TestEvent; if (temp != null)
{
temp(this, new System.EventArgs());
}
}
以上是摘自MSDN中的一段代码,就是想请教一下各位 “temp(this, new System.EventArgs());”中的两个参数都具体代表的啥?尤其msdn中解释说“.NET Framework 中事件的签名中,通常第一个参数为引用事件源的对象,第二个参数为一个传送与事件相关的数据的类。”就是对于他说的那两个参数的含义不明白,具体是什么啊?谢谢各位了。
还有以下代码:
public class EventReceiver
{
public void ReceiveTestEvent(object sender, System.EventArgs e)
{
System.Console.Write("Event received from ");
System.Console.WriteLine(sender.ToString());
}
}
都属于同一个问题,sender一般是指的什么对象?谢谢各位了。
Fuck(object sender,EventArgs e)
{
Button btn=sender as Button;
其实就是 那个按钮按了我
}
就sender就是自身。
新闻要素一般有(Who,Where,When,What),相同的,EventHandler用object sender来传达是谁(who)触发了事件,用EventArg来传达该事件是什么回事。因此可以说sender一般指触发事件的主体。注:并不是100%事件都要遵循这种模式,也有人会传入sender=null或e=EventArgs.Empty,要具体看文档。