下载首页 | 资讯中心 | 文章分类 | 最近更新 | 排 行 榜 | 国产软件 | 国外软件 | 绿色软件 | 汉化补丁 | |
文章搜索: 分类 关键字
您的位置:首页编程开发编程语言 → 编程高手 实例解析C++/CLI之代理与事件
编程高手 实例解析C++/CLI之代理与事件
来源:天极yesky 作者: 加入时间:2006-12-8 访问次数:9 [  ]



  例9:

using namespace System;

int main()
{
 Server::Broadcast("Message 1");
 Client^ c1 = gcnew Client("A");
 Server::Broadcast("Message 2");

 Client^ c2 = gcnew Client("B");
 Server::Broadcast("Message 3");

 Client^ c3 = gcnew Client("C");
 Server::Broadcast("Message 4");

 c1->~Client();
 Server::Broadcast("Message 5");

 c2->~Client();
 Server::Broadcast("Message 6");

 c3->~Client();
 Server::Broadcast("Message 7");
}

  例9是主程序,一开始,没有注册任何函数,所以当发送第一个消息时,不会获得任何通知。然而,一旦构造了c1,通知列表就包含了此对象的一个入口,而接下来c2与c3的构造使这个列表增长到3个入口。在这些对象消失时(通过显式调用析构函数),入口数也相应地减少了,直到最后,一个也不剩,因此当最后一条消息发出时,没有任何对象在监听。以下是输出:

Client A received message Message 2
Client A received message Message 3
Client B received message Message 3
Client A received message Message 4
Client B received message Message 4
Client C received message Message 4
Client B received message Message 5
Client C received message Message 5
Client C received message Message 6

  尽管3个对象均为同一类型,但这并不是必须的,只要定义的函数可与NewMsgEventHandler兼容,就能使用任意的类型。

  上述例子中使用的事件只不过是微不足道的一个示例,另外要说明一点,与以前文章中说过的属性一样,此种类型的事件均以private属性自动备份,且自动生成添加(add)与移除(remove)存取程序,为自定义这些存取程序,就必须提供这些函数的定义,如例10中所示,名称add与remove在此为上下文关键字。

  例10:

public ref struct Server
{
 // ...
 static event NewMsgEventHandler^ ProcessNewMsg {
  void add(NewMsgEventHandler^ n) { /* ... */ }
  void remove(NewMsgEventHandler^ n) { /* ... */ }
 }
 // ...
};

上一页 [1] [2] [3] [4] [5] 下一页
评论人 评论内容摘要(共 0 条,查看完整内容) 得分 0 发表时间
 热点文章
·惊爆!《暗黑破坏神3》将对应全平台
·《荣誉勋章:太平洋之战》中文版上市
·MediaShow魅力四射快速制作音乐电子相册
·《花木兰》完美流程攻略
·轻松可爱 最新10大Q版网络游戏推荐
·2006年暑期新宣布免费网络游戏一览
·photoshop制作水晶球中的精灵
·NVIDIA发布Forceware 93.71 WHQL驱动
·经验分享 微软Word2007实用技巧两则
·国内新记录产生 1M super pi运算仅用9秒
 推荐文章
·微软高官爆料:欧盟对Vista哪些功能不安
·在Google Talk上与QQ、MSN好友聊天
·Word使用过程中的常见问题及其解决
·手把手教你内存终极变相“造假”大法
·NVIDIA联手海盗船 推出自动超频内存
·Windows Vista特殊功能介绍:语音识别
·公安机关检验软件样本 流氓软件制造者面临坐牢危..
·比英特尔UMPC还要小 移动PC新品推出
·性感暴力完美结合 御姐武戏X新画面
·盖茨访谈:我就是微软里的兼职员工
WinXP下载基地 版权所有 Copyright© 2006-2008 WWW.WinXpd.COM, All Rights Reserved. 页面维护: WinXP下载基地(WinXP基D)