作者: mcevilrock
查看: 6013|回复: 10
打印 上一主题 下一主题

【番外篇】C#委托教程

[复制链接]
跳转到指定楼层
楼主
mcevilrock 发表于 2015-10-9 01:08:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查看: 6013|回复: 10
课程名:
  • 番外篇 之 C#委托

课程说明:
  • 很多朋友在学习C#时,总会遇到多线程和委托的概念。
  • 不是对其理解的不是很透彻,要不就是几乎只会用,根本不知道它是干嘛的。
  • 本视频教程重点为大家详细的讲解C#委托的使用。

一、委托是啥?
  • 委托,委派一个人托付一件事。
  • 是委托一个变量,一个方法(一件事)
  • 将方法当做参数传递
二、为什么要有委托?
  • 房屋中介.

三、委托能干嘛?
  • 就是找别人帮你做事

四、为什么委托和指针一样?
a) 委托和C++中的指针一样.
  • 指针是指向内存地址.
  • 委托”指向”方法的内存地址.

五、委托的应用场景?
a) 在类中我需要传递给窗体一个信息.但是不想让这个信息以返回值的形式返回.
  • 常规情况使用委托场景:
  • 多线程中解决由” 线程间操作无效: 从不是创建控件“xxx”的线程访问它。”
  • 异步模式.
                                                      ii.              
六、多播委托
  • 额外知识 this 关键字
  • 标识当前活动的对象.如果在窗体中,那么可以表示当前的Form
  • 如果在事件中,表示当前激活事件的宿主.
  • Base关键字
  • 当前对象的父对象.

委托的语法:
权限修饰符        委托关键字    委托返回值     委托名( [参数] )
public             delegate        void                GetInfo();//声明委托
权限修饰符        委托           变量名
public             GetInfo         getInfo; //声明委托变量
直接和方法调用一样.传递变量即可.
getInfo(str);//委托的第一种使用方式

问题一:为什么使用委托以后,还会出现跨线程访问的错误.
误区:委托仅仅是将方法当做参数传递,“并不是用来执行或者解决一些特殊的问题,比如说跨线程异常”。
  • 委托变量申明的传递。正确。
  • this.Invoke();   推荐使用
  • 原因:由于我的控件是”我”(Form1)创建的,那么最好还是由我来调用/销毁
  • 在创建控件的基础窗口句柄的线程上,用指定的参数列表执行指定委托   微软官方翻译
  • 从创建控件的线程上,用指定的参数列表执行指定委托        君临翻译
  • Base.Invoke();    越俎代庖.
  • 在拥有控件的基础窗口句柄的线程上,用指定的参数列表执行指定委托。微软官方翻译
  • 从拥有控件的线程上,用指定的参数列表执行指定委托
  • 多播委托又被称之为”委托链”
  • 多播委托其实就是一个委托接一个委托……
  • 执行所有给他注册的方法.
  • +=  增加一个委托方法
  • -=  去除一个委托方法.

免费课程视频下载地址:
百度盘:链接:http://pan.baidu.com/s/1boZu0qV 密码:ou0c
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播
回复 论坛版权

使用道具 举报

来自 5#
 楼主| mcevilrock 发表于 2016-11-1 22:15:36 | 只看该作者
原内容中失效的外链在此帖补充.
百度盘:链接:http://pan.baidu.com/s/1boZu0qV 密码:ou0c
沙发
310939468 发表于 2016-5-25 23:11:00 | 只看该作者
谢谢分享
回复

使用道具 举报

板凳
json_guo 发表于 2016-6-29 09:28:44 | 只看该作者
好像很厉害的样子
地板
darker 发表于 2016-10-15 00:19:49 | 只看该作者
一直想知道什么是委托。。。
6#
tolwm 发表于 2016-11-2 09:14:43 | 只看该作者
学习了! 感谢分享      
7#
东方快递 发表于 2017-5-20 19:18:16 | 只看该作者
又没有了 求重发
8#
qq87008800 发表于 2017-7-7 10:13:04 | 只看该作者
地址上不去了,求重发一下~~~~~`
9#
zihan169 发表于 2018-11-3 09:06:25 | 只看该作者
地址失效,求重发一下
10#
214679 发表于 2018-11-22 09:24:16 | 只看该作者
下載收藏 日後學習
您需要登录后才可以回帖 登录 | 加入CSkin博客

本版积分规则

QQ|申请友链|小黑屋|手机版|Archiver|CSkin ( 粤ICP备13070794号

Powered by Discuz! X3.2  © 2001-2013 Comsenz Inc.  Designed by ARTERY.cn
GMT+8, 2024-11-22 05:43, Processed in 0.622229 second(s), 31 queries , Gzip On.

快速回复 返回顶部 返回列表