c# 事件 +=和-=有什么区别。

process_xt.OutputDataReceived -= new DataReceivedEventHandler(encoder_OutputDataReceived);
process_xt.OutputDataReceived += new DataReceivedEventHandler(encoder_OutputDataReceived);
下面定义encoder...的事件,+=和-=用法有什么不同

一个事件可以有很多的侦听者挂接在上面,这些侦听者通过注册自己的事件处理例程来告诉系统说,当这个事件发生的时候请调用我的xxx方法。
具体到你这里的代码,OutputDataReceived 就是一个事件,侦听者想要告诉系统说,当我收到outputdata的时候请你执行我的encoder_OutputDataReceived方法。 侦听者怎么样用程序的语言告诉系统呢,就是你这里写好的 += 语句了,
process_xt.OutputDataReceived += new DataReceivedEventHandler(encoder_OutputDataReceived);

那有一天,侦听者可能不感兴趣这个事件了, 那么他可以取消掉自己的注册。 用 -= 咯
process_xt.OutputDataReceived -= new DataReceivedEventHandler(encoder_OutputDataReceived);

希望能帮上你的忙~
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-02-16
+=就是发生这个事件的同时要通知你,-=就是发生这个事件不再来通知你了。

这就好比你在邮局订阅了一年的《中国青年》报纸,如果邮局有新的《中国青年》报纸,就会给你家的邮箱中投递一份新的《中国青年》报纸。如果到了一年,你没有订阅它,那么邮局就不会给你寄报纸了。
第2个回答  2011-02-16
删除事件 添加事件

c# 事件 +=和-=有什么区别。
一个事件可以有很多的侦听者挂接在上面,这些侦听者通过注册自己的事件处理例程来告诉系统说,当这个事件发生的时候请调用我的xxx方法。具体到你这里的代码,OutputDataReceived 就是一个事件,侦听者想要告诉系统说,当我收到outputdata的时候请你执行我的encoder_OutputDataReceived方法。 侦听者怎么样用程序的...

C#里面的-=,+=是什么意思?
首先解释一个"-="和"+="的含义:a += b;c -= d;等价于 a = a + b;c = c - d;前者比后者书写更方便,代码更简洁。你给的例子中 YEAR_MONTH_CB.SelectedIndexChanged += new EventHandler(YEAR_MONTH_CB_SelectedIndexChanged);是给YEAR_MONTH_CB的SelectedIndexChanged 事件注册一个处理句柄。

c#"-="用法:在处理事件问题上,挂载事件用“+=”,无意间又发现一个“-=...
还有一种情况,你的业务逻辑需要你动态改变控件的事件处理函数,就需要用-=先去掉掉原有的事件处理,然后再用+=绑定新的事件处理代码。

c# 事件 +=和-=有什么区别。
一个事件可以有很多的侦听者挂接在上面,这些侦听者通过注册自己的事件处理例程来告诉系统说,当这个事件发生的时候请调用我的xxx方法。具体到你这里的代码,OutputDataReceived 就是一个事件,侦听者想要告诉系统说,当我收到outputdata的时候请你执行我的encoder_OutputDataReceived方法。侦听者怎么样用程序的...

C#里事件和委托有什么区别啊??
一 、使用位置不同 事件只能在本类型内部“触发”,委托不管在本类型内部还是外部都可以“调用”。二、使用符号不同 在类的外部,事件只能用“+=”和“-=”去订阅\/取消订阅,如果是委托的话还可以使用“=”。

c#中"+="什么意思
你好。这句话你就把理解为是c#中的事件委托。+=通俗的理解为把右边的事件赋予左边的动作来完成。比如您问的,意思就是:一个“点击”动作被赋予了一个要完成的事件,事件就是右边的。

c#中的+=是什么意思啊
+= 是从C\/C++继承过来的运算符。对于基础变量类型来说,+= 就是左侧的变量“自增”右边的数值,以下2\/3行语句是等价的:int i=1;i += 5;i = i + 5;对于非基础类型的对象,+=作为一个运算符是支持重载的,但标准对象的重载都保留了原来的语义,和基础对象的等价语句相同。但不能保证所有...

【C#】给事件注册方法时“+=”右边一定得是一个委托吗?
对於第一种方法来说,实际上使用的是所有委托的一个基类 委托,实际上是一个类,是表示方法的类,也可以理解为 ,委托是指向方法的一个“指针”其实,你可以试试-=,可以将注册的方法去掉 关於委托的理解,你可以看看我在csdn上的博客 参考资料:http:\/\/blog.csdn.net\/curllion\/archive\/2004\/12\/17...

C#中事件能不能用=注册,和+=注册有什么区别?
=是引用赋值,相当于把委托地址赋值给了事件,如果两个事件都=同一个委托,那么当这个委托发生变化时,两个事件都会变化。+=等价于Delegate.Combine(this.事件, 委托);\/\/事件声明语句 - 反射得到的内部代码精简后 class 事件反射 { private 委托类 事件; \/\/对事件的声明 实际是 声明一个私有的委托...

用C#编写事件:请高手指点一二。。我是自学的。万分感谢!!!
然后A类中还要有【触发事件的方法】,所谓触发其实就是调用事件,而事件就是多重委托,调用了事件,就是依次调用了所有绑定到该事件上的委托,而这些委托包含的就是事件的处理方法。要想接到时间通知,那么就要把接收方对象的该事件的处理方法绑定到事件发送方对象的该事件上,这个步骤称为【订阅事件】,...

相似回答