zoukankan      html  css  js  c++  java
  • 『参考』.net CF组件编程(2)——为组件添加事件

    在前一篇文章中,大家和我一起已经为组件添加了其必要属性,那么,在有了属性之后,我们就接着为组件添加事件响应的功能吧,毕竟每个组件都应该有个简单的事件,要不组件就成属性容器了,呵呵。

    好的,还是接上文『参考』.net CF组件编程(1)——基础之后,我们在TcpHelper.cs组件类中,添加一个基本的Tcp连接代码如下:

    基础TCP方法

    相信使用过Tcp编程的朋友们是非常熟悉这段代码的,当然,可能会对ConnectHandler以及DisconnectHandler函数陌生,他俩是我们即将定义的一个消息处理函数,用于向事件的订阅者传递事件信息的(这里的信息有点像Catch捕获异常时,那个Exception e中的e.Message),下面我们来真的为组件添加事件吧:

    组件事件
    /// <summary>
    /// 线程委托,用于返回连接状态等信息
    /// </summary>
    /// <param name="msg">传出的参数,在实际调用中类似于事件的Args参数</param>
    public delegate void ConnectStatuDelegate(string msg);
    /// <summary>
    /// 返回连接状态事件,ConnectedStatu就是在属性设计器中能看到的事件了
    /// </summary>
    public event ConnectStatuDelegate ConnectedStatu;

    定义好事件后,可以参照前一篇文章中,提及的为组件添加属性描述的方法,为事件同样添加好描述。如图:

    方法类似于属性,大家应该自己去看吧,因为实在简单,在此就不赘述了。好了,下面,组件有事件了,接下来,我们要告诉这个事件,应该如何响应,接下来,为事件添加响应代码:

    事件响应代码

    这里,我们看到了ConnectHandler以及DisconnectHandler函数,是不是明了很多呢?其实就是调用同一个委托方法,供TCP基础函数来针对不同的状态返回给事件订阅者不同的消息。而MessageHandler方法是一个经典的事件处理的描述。

    到此为止,我们的组件已经拥有了方法、属性,而我们的组件代码也就到此结束,在下一篇的文章,我们将学会如何使用此组件,以及如何处理组件的默认属性。

    TcpHelper组件的全部代码如下:

    TcpHelper全部代码

    参考文档:

    http://www.cnblogs.com/mapserver/category/65343.html 感谢Mapserver朋友

    http://www.cnblogs.com/OSCAR_NJU/archive/2008/04/02/1134231.html 感谢死刑犯朋友(汗)

  • 相关阅读:
    [慢查优化]慎用MySQL子查询,尤其是看到DEPENDENT SUBQUERY标记时
    Web开发基本准则-55实录-缓存策略
    Web开发基本准则-55实录-Web访问安全
    线上Java应用排查和诊断规范
    [慢查优化]建索引时注意字段选择性 & 范围查询注意组合索引的字段顺序
    [慢查优化]联表查询注意谁是驱动表 & 你搞不清楚谁join谁更好时请放手让mysql自行判定
    再说memcache的multiget hole(无底洞)
    RCA:未注意Curl-library Post 1024以上字节时的HTTP/1.1特性导致 HessianPHP 传输数据失败
    (研发系)职业化7个细节
    5·12和6·17两知名网站域名被劫持事件实施过程回放
  • 原文地址:https://www.cnblogs.com/longqi293/p/1614231.html
Copyright © 2011-2022 走看看