首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 如何用委托(delegate)来实现回调(callback) [已结贴,结贴人:chaye12]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-27 14:26:10 楼主
    希望大家能给个例子!
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-27 15:29:031楼 得分:0
    大家没有知道的吗??如果没人解答,顶着也有分!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-27 15:41:032楼 得分:20
    C# code
    delegate void DelCallBack(int iCount); private void button1_Click(object sender, EventArgs e) { DelCallBack call = new DelCallBack(CallBack); add(1, 2, call); } private void add(int a, int b, DelCallBack c) { int sum=a+b; c(sum); } private void CallBack(int iCount) { MessageBox.Show(iCount.ToString()); }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-27 15:42:583楼 得分:0
    意思就是执行完加法之后,调用CallBack函数,把结果弹出来。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-27 15:45:544楼 得分:0
    类似这样。
    C# code
    delegate void aa(string s);//创建一个代理 private void pri(string t) { if (!TextBox1.InvokeRequired) { TextBox1.Text =t; } else { aa a1 =new aa(pri); Invoke(a1,new object []{t}); } }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-27 16:23:085楼 得分:0
    我的理解就是回调用于为服务器和客户机之间提供异步的反馈,在C#中,回调使用委托来表达
    哈,例子,上面的有了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-27 16:34:006楼 得分:0
    MSDN对回调函数有详细解释,楼上的例子都是对的.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-27 17:13:227楼 得分:0
    3楼的我基本能看明白,也明白你的意思,但是所以的回调函数都是那样的吗?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-29 19:09:328楼 得分:0
    引用 2 楼 HimeTale 的回复:
    C# code        delegate void DelCallBack(int iCount);
            private void button1_Click(object sender, EventArgs e)
            {
                DelCallBack call = new DelCallBack(CallBack);
                add(1, 2, call);
            }

            private void add(int a, int b, DelCallBack c)
            {
                int sum=a+b;
                c(sum);
            }

            private void CallBack(int iCount…



    不错
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-29 19:14:349楼 得分:0
    来学习学习
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-29 20:58:5110楼 得分:0
    引用 2 楼 HimeTale 的回复:
    C# code        delegate void DelCallBack(int iCount);
            private void button1_Click(object sender, EventArgs e)
            {
                DelCallBack call = new DelCallBack(CallBack);
                add(1, 2, call);
            }

            private void add(int a, int b, DelCallBack c)
            {
                int sum=a+b;
                c(sum);
            }

            private void CallBack(int iCount…



    c(sum);  那个C是哪的啊???
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-29 22:36:3411楼 得分:0
    C就是传进来的delegate,参数传入的
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved