当前位置: 首页 > news >正文

网站开发的网页模板漳州网站建设公司推荐

网站开发的网页模板,漳州网站建设公司推荐,app用户量排名,关于新农村网络建设网站如大家要转载#xff0c;请保留本人的版权:/* *Description:asp.NET自定义服务器控件内部细节系列教程*Auther:崇崇-天真的好蓝 *MSN:chongchong2008msn.com *Dates:2007-05-20*Copyright:ChongChong2008 YiChang HuBei China */关于自定义asp.NET自定义服务器控件文章和源码示…如大家要转载请保留本人的版权:/* *Description:asp.NET自定义服务器控件内部细节系列教程*Auther:崇崇-天真的好蓝 *MSN:chongchong2008msn.com *Dates:2007-05-20*Copyright:ChongChong2008 YiChang HuBei China */关于自定义asp.NET自定义服务器控件文章和源码示例网上已经很多了不过有些内部些节方面让一些初次接触这方面技术的朋友难以理解对服务器控件的方方面面也很疑惑。为此我抽出些时间把自己所理解的东西整理出来方便大家交流学习。 一 理解事件委托事件引发事件以及事件优化    .NET框架的事件委托和事件数据的命名约定   事件数据类由事件名加后缀EventArgs构成如SXLoginEventArgs   事件委托由事件名加后缀EventHandler构成如SXLoginEventHandler   引发事件的方法名字是在事件前加上前缀OnOnSXLogin    1。事件委托      委托其实是一个类委托具有函数指针的粒度和接口的安全性为什么这样说是因为委托就是安全类型的函数指针用来回调方法方法的签名必须和委托的签名相匹配。       下面我们看看委托的声名:          public delegate void SXLoginEventHandler(object sender,SXLoginEventArgs e);       上面的定义表示定义了一个SXLoginEventHandler的事件委托返回类型是void并分别接受一个object和SXLoginEventArgs类型的参数。object表示事件的发送者e表示描述事件的数据。       可以看出事件委托的声名和类的声名是类似的只需增加关键字delegate即可。      委托间接派生于System.Delegate直接派生于System.MulticastDelegate。    2。事件      事件是当有动作发生或状态改变时类发出的信息或通知。       下面我们看看事件的声名:           public event SXLoginEventHandler SXLogin ;      可以看出事件是与一个委托相关联的。    3。引发事件      为了在类中实现事件需要一个事件数据类事件委托以及一个发布事件通知的方法。我们需要把这些组合在一起下面给一个例子      3.1 如果类没有任何关联的事件数据就直接使用EventArgs类或其它已存在的事件数据类必须匹配。否则需要定义一个事件数据类这个类必须从System.EventArgs中派生如下          public class SXLoginEventArgs:EventArgs{...}       3.2 如果事件没有关联的数据就直接使用System.EventHandler作为事件委托否则需要定一个事件委托如下          public delegate void SXLoginEventHandler(object sender , SXLoginEventArgs e );       3.3 用event关键字定义事件成员后面紧跟与此对应的事件委托如下          public event SXLoginEventHandler SXLogin ;      3.4 在类中定义一个虚方法调用事件委托方法的名字是在事件前加上前缀On如下          protected virtual void OnSXLogin(SXLoginEventArgs e)   {  if(SXLogin ! null)  {   SXLogin(this , e);  }   }    4。事件优化      如果一个类中引发了多个事件通过为每一个事件声名一个事件字段成员来执行时低效的为此我们换一种方法用属性来定义事件。      .NET框架有一个System.ComponentModel.EventHanlderList类这个类是一个优化了的委托存储和取回的链表。下面来看看优化事件模式是如何实现的        private EventHanlderList events ;        protected EventHanlderList Events {  get  {   if(eventsnull)   {    events new EventHanlderList();   }   return events;  }  }  protected static readonly object SXLoginEventObject new object();  我们用属性而不是字段来定义事件如下 public event SXLoginEventHandler SXLogin {  add{Events.AddHandler(SXLoginEventObject,value)};  remove{Events.RemoveHandler(SXLoginEventObject,value)}; }
http://www.sadfv.cn/news/60704/

相关文章:

  • 网站推广的常用途径有哪些珠海酒店网站建设
  • 网站泛解析二级域名怎么做网站
  • wordpress模板上传图片wordpress 性能优化
  • 广西南宁建设银行最新招聘网站哪个省份网站建设便宜
  • 经营网站需要什么费用免费漫画大全免费版
  • 摄影师如何做网站厦门关键词优化网站
  • 现在流行的网站开发怎么建立自己的公司网站
  • 知道域名怎么进入网站网站如何申请域名
  • 网站建设平台怎么做爱常德网
  • 黄冈网站建设公司制作网站做网站用什么空间
  • 建筑安全类网站手机网站 软件
  • 宁德网站推广长沙网站的建设
  • 中合网络网站建设有人百度看片吗
  • 彩票网站怎么做系统惠州 家具 网站上线
  • 做化工资讯的网站星空 电影 在线观看
  • 免费网站开发合同阿里巴巴网站建设规划
  • 部门网站建设的目的和意义云空间的网站如何做
  • 网站建设内部下单流程安居客看房网
  • 江门网站制作流程python 网站开发 linux
  • 站群cms源码不适合学编程的人
  • 网站开发的广告词网站扫描怎么做
  • 关于网站seo优化中文搜索引擎有哪些平台
  • eclipse做购物网站潍坊网站制作报价
  • 企业网站php源码免费下载wordpress实现商城
  • 网站如何优化推广百度seo引流怎么做
  • 网站的推广方法有哪些wordpress 多余p标签
  • 建立链接网站模板网站建设维护方案
  • 智慧团建网站进不去贸易公司注册条件
  • 在线获取颜色代码网站建设银行业务管理中心网站
  • 电子商务网站建设与管理 项目任务 教材梯子国外服务器免费