关于 C# 事件 += 运算符

问题描述

textBox1.TextChanged+=newEventHandler(textBox1_TextChanged);其中里面的加号是啥意思?为啥加号不能写在等于号的右边呢?那位知道?==============版主提示,应该在标题扼要说明遇到的问题,而不要用无意义的单词,请及时结贴给分。

解决方案

本帖最后由 caozhy 于 2012-02-12 02:46:06 编辑
解决方案二:
这是事件,小伙子
解决方案三:
不懂帮顶C井号编译器所依赖的BNF语法就是那么描述的.
解决方案四:
使用+=运算符称为“订阅事件”。参见http://msdn.microsoft.com/zh-cn/library/ms366768.aspx
解决方案五:
你把事件看成委托集合就行了,可以增加或减少
解决方案六:
括号里面的可以理解成事件名
解决方案七:
textBox1.TextChanged=textBox1.TextChanged+newEventHandler(textBox1_TextChanged);这样写行吗?
解决方案八:
+=是一个运算符,和==、>=、<=一样,左右两个字符的顺序不能变更;+=的由来大家都知道,在c中x=x+2可以简化成x+=2;当这个运算符来到c#中的时候,继承了其在算术运算中的地位;当用在事件中时,就相当于在原有事件的基础上再增加一个委托(newEventHandler(textBox1_TextChanged)是一个新的委托实例,应该没有异议吧);事件定义的写法也可以是这样的:publicMyDelegatemy;publiceventMyDelegateOnDelegate{add{my+=value;}remove{my-=value;}}

使用这种写法可以在增减委托实例的时候,写自己的处理代码,这是题外话;也就是说你写OnDelegate+=的时候调用的是add方法,OnDelegate-=的时候调用的是remove方法。
解决方案九:
该回复于2012-02-08 13:47:23被版主删除

时间: 2024-09-22 13:52:25

关于 C# 事件 += 运算符的相关文章

C#事件访问器

我们可以通过为事件定义事件访问器,来控制事件运算符+=.-=运算符的行为 有两个访问器:add和remove 声明事件的访问器看上去和声明一个属性差不多 下面示例演示了具有访问器的声明.两个访问器都有叫做value的隐式值参数,它接受实例或静态方法的引用 public event EventHandler Elapsed { add { //... 执行+=运算符的代码 } remove { //... 执行-=运算符的代码 } } 声明了事件访问器后,事件不包含任何内嵌委托对象.我们必须实现自

C#委托和事件

委托和事件 .NET Framework 还可以广泛地将委托用于事件处理任务,如 Windows 或 Web 应用程序中的按钮 Click 事件.Java 中的事件处理通常通过实现自定义侦听器类完成,而 C# 开发人员则可以利用委托处理事件.事件的声明类似于具有委托类型的字段,区别在于事件声明前面有 event 关键字.事件通常被声明为 public,但允许使用任何可访问性修饰符.下面的示例演示了 delegate 和 event 的声明. C#  =复制代码 // Declare the de

javascript运算符整理

说起运算符,基本上各类编程语言中都会涉及,使用方法大同小异.今天在这里以javascript做简单的整理.   总得来说运算符还是比较的多,大致可以分为以下几种类型: 一元运算符 位运算符 布尔运算符 乘性运算符 加性运算符 关系运算符 等性运算符 条件运算符 赋值运算符 逗号运算符 可以说只要学习过变成语言对这些运算符应该是并不陌生的,只要有逻辑或者是计算都会用到上面的运算符,之前我也是比较零散的使用过,从来没有系统的学习和整理过这些运算符到底怎么使用?之间有什么区别和联系?有什么使用上的技巧

意料外的MySQL运算符可获更多数据功能

如果你在最近进行过SELECT或UPDATE查询,那么你很可能用到过一个或者多个MySQL的比较运算符来限制查询的输出结果.比较是大多数SELECT查询不可分割的一部分,而MySQL为这一功能提供了很多函数:根据最近一次统计,它有超过20个这样的运算符和函数,从著名的=和LIKE到更加难懂的NOT IN和STRCMP(). 本文把重点放在一些不太常见的MySQL数据比较函数和运算符上,讨论它们可以被如何运用在应用程序里比较表格字段里的字符串.数字和日期/时间或者用户提供的值. BETWEEN B

谈谈C#中的事件注册和注销

由于.NET框架对消息循环机制进行了很好的封装,开发人员不再需要深入的了解Windows事件/消息实现的具体机制,也无需创建复杂的事件结构体和所谓的消息句柄.我们所要做的无非就是--1.使用重载运算符"+="注册一个事件:2.编写对于该事件的处理方法.(关于C#2.0中事件处理的相关介绍,请参阅我的文章:C#2.0的泛型代理和事件 :以一当百的快感 )  如此简单,以至于习惯了Win32编程的伙计们对此嗤之以鼻,讽之:"我们是开手排挡车的专业选手,你们.NET一族只能玩玩自动

Henry的VB.NET之旅(十四)—动态关联事件与处理程序

程序|动态 Henry的VB.NET之旅(十四)-动态关联事件与处理程序 韩睿 "要解释新的事件处理程序的方法,我们需要先说几个重要的问题."大李开始严肃起来,我也只得挪动一下身子,表现出正襟危坐的架势. "我们首先讨论一下事件是怎么产生的.事件是对象发送的消息,以发信号通知操作的发生.操作可能是由用户交互,例如鼠标单击引起的,也可能是由某些其他的程序逻辑触发的.引发事件的对象叫做事件发送方(啊,听到这,Henry突然明白了事件处理程序中的第一个参量为什么叫Sender了,就

Framework 类库的事件编程

编程 本页内容 EventHandler 委托 自定义的事件参数 参数化自定义事件 小结 本月的内容是专门介绍事件编程的系列专栏(共三期)的最后一期.在前两期专栏中,我已经介绍了如何定义和引发事件(请参见 Basic Instincts:Programming with Events Using .NET 和 Basic Instincts:Static Event Binding Using WithEvents).我还解释了如何使用动态和静态事件绑定来绑定事件处理程序.本月,我将通过一些在

java的关系运算符

关系运算符生成的是一个"布尔"(Boolean)结果.它们评价的是运算对象值之间的关系.若关系是真实的,关系表达式会生成true(真):若关系不真实,则生成false(假).关系运算符包括小于(<).大于(>).小于或等于(<=).大于或等于(>=).等于(==)以及不等于(!=).等于和不等于适用于所有内建的数据类型,但其他比较不适用于boolean类型. 1. 检查对象是否相等 关系运算符==和!=也适用于所有对象,但它们的含义通常会使初涉Java领域的人找

C#拖放技术相关方法和事件

1.方法 实现拖放效果时,C#中提供了一个系统方法DoDragDrop方法,用于实现开始拖放操作,该方法由Control类所定义,由于控件均直接或是间接派生于Control类,因此开发人员可以在任何可视化组件中调用DoDragDrop方法.DoDragDrop方法使用语法如下: public DragDropEffects DoDragDrop ( Object data,DragDropEffects allowedEffects) data:用户所要拖动的数据内容.必须将所要拖动的内容传入到