谁能解释一下c#中的'事件'的用法
你可能每天早上都要吃早饭,但是在吃早餐之前一般都会洗脸、刷牙等才会吃早餐,从这个例子来看,吃早餐是一个动作,而吃早餐之前则是一个事件,而这个事件一旦被触发则被要求要洗脸和刷牙。对于一个动作一般都会有三个事件如吃饭之前、吃饭中、吃饭后,可以说吃饭之前是动作的一种状态,这就是事件,而事件触发则是动作的某种状态被达到,事件触发后则会发生相关的其他动作,而每个动作又有相应的事件状态。总结而言,事件的使用是为了在某个动作的状态被达到的时候应进行某个动作而服务的!
如按钮的单击事件:单击是动作,而按钮的单击事件是指的按钮被单击的状态达到的时候应该做某件事情。在C#中的动作都可以用方法来表示!
写了这么多,希望能帮助你理解!
事件(event)
可以把事件编程简单地分成两个部分:事件发生的类(书面上叫事件发生器)和事件接收处理的类。
事件发生的类就是说在这个类中触发了一个事件,但这个类并不知道哪个个对象或方法将会加收到并处理它触发的事件。所需要的是在发送方和接收方之间存在一个媒介。这个媒介在.NET Framework中就是委托(delegate)。
在事件接收处理的类中,需要有一个处理事件的方法。就按照这个顺序来实现一个捕获键盘按键的程序,来一步一步说明如何编写事件应用程序。
具体应用:
internal class KeyInputMonitor
{
// 创建一个委托,返回类型为void,两个参数
public delegate void KeyDownHandler( object sender, KeyEventArgs e );
// 将创建的委托和特定事件关联,在这里特定的事件为KeyDown
public event KeyDownHandler KeyDown;
public void Run()
{
bool finished = false;
do
{
Console.WriteLine( "Input a char" );
string response = Console.ReadLine();
char responseChar = ( response == "" ) ? ' ' : char.ToUpper( response[0] );
switch( responseChar )
{
case 'X':
finished = true;
break;
default:
// 得到按键信息的参数
KeyEventArgs keyEventArgs = new KeyEventArgs( responseChar );
// 触发事件
KeyDown( this, keyEventArgs );
break;
}
}while( !finished );
}
}
当你触发它的时候,他就会响应 你所设定的事件。。。
你把开关连到 灯 上 当你按下的时候 灯就会亮。
就相当于 你写的 方法里面的 if条件。。
如果他 按下按钮 那么执行 你 {}里面的条件。。
事件就是这样吧。。。
事件就是对象发送的消息,以发信号的方式通知操作的发生,信号是由用户交互或程序逻辑触发的.触发事件的对象叫事件的发送方,捕获事件并对其作出响应的叫事件接收方.
在事件的通信中,由于事件的发送方不知道哪个对象或方法将接收处理它所引发的事件,所以需要在发送方和接收方之间存在一个媒介,就是委托.所以说委托就是事件或事件就是委托是不对的.
这个是我整理的笔记,希望能帮你理解事件和委托的概念