09 2012 档案

摘要:.NET的事件模型是建立在委托的机制上,事件机制可以做到,原生的委托也都可以做到;可以说,事件只是对委托的封装,使得用起来更安全。在具体的代码里,定义一个委托和定义一个事件的差别仅仅是:定义事件时要前面加一个 event 关键字!正因为这个关键字,编译器就会为这个被封装了的委托暗地里做很多事情,如原生委托可以直接用new来初始化,可以在委托链绑定了很多方法的时候直接用一个 = 操作符来把那些方法清空,等等,而对于事件,编译器把这些都封装了,不能乱来,编译器只是提供了两个方法:add_myEvent、remove_myEvent 让事件客户端仅能通过 += 、 -= 来添加、移除事件的订阅者,如 阅读全文
posted @ 2012-09-06 16:00 仙外仙 阅读(237) 评论(0) 推荐(0)
摘要:委托本质上是一个类,隐式继承自System.MulticastDelegate类,该类维护一个带有链接的委托列表,在调用多播委托时,将按照委托列表的委托顺序而调用,该类还包括一个接受两个参数的构造器和3个重要的方法:BeginInvoke、EndInvoke、Invoke;MulticastDelegate 拥有一个带有链接的委托列表,该列表称为调用列表,它包含一个或多个元素。在调用多路广播委托时,将按照调用列表中的委托出现的顺序来同步调用这些委托。.NET提供了简洁的语法来创建委托链:以+= 和-= 操作符分别进行绑定和解除绑定的操作;一切在代码,不废话,其实,理解了委托类型和委托类型的变量 阅读全文
posted @ 2012-09-06 10:51 仙外仙 阅读(247) 评论(0) 推荐(0)
摘要:在看anytao的《你必须知道的.NET》 http://www.cnblogs.com/anytao/archive/2008/08/27/must_net_22.html,看到字符串驻留这部分时,对于里面提到的几个问题有些小疑问,特别是后面几个问题,没看懂,所以特地做了些小测试,也不知是否正确,或者说那里表达得有问题,请了解这方面的大侠们多指点。该说的在代码里已经说,其他的就不废话了 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 names. 阅读全文
posted @ 2012-09-04 22:55 仙外仙 阅读(289) 评论(0) 推荐(0)