C#论坛-玄机论坛-C#论坛-玄机宝盒-玄机类库-C#

 找回密码
 关闭注册

QQ登录

只需一步,快速开始

查看: 4204|回复: 15

[番外系列] 玄机论坛C#培训课程-番外篇之C#委托

[复制链接]
君临 发表于 2014-10-27 23:33:29 | 显示全部楼层 |阅读模式

玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
如有疑问,请加入官方群询问

您需要 登录 才可以下载或查看,没有帐号?关闭注册

x
番外篇 C#委托

玄机论坛番外篇之C#委托,

很多朋友在学习C#时,总会遇到多线程和委托的概念,

不是对其理解的不是很透彻,要不就是几乎只会用,根本不知道它是干嘛的.

本视频教程重点为大家详细的讲解C#委托的使用.

一、委托是啥?
a)        委托,委派一个人托付一件事。
b)        是委托一个变量,一个方法(一件事)
c)        将方法当做参数传递
二、为什么要有委托?
a)        房屋中介.
三、委托能干嘛?
四、为什么委托和指针一样?
a)        委托和C++中的指针一样.
                                                       i.             指针是指向内存地址.
                                                      ii.             委托”指向”方法的内存地址.
五、委托的应用场景?
a)        在类中我需要传递给窗体一个信息.但是不想让这个信息以返回值的形式返回.
                                                       i.             常规情况使用委托场景:
1.         多线程中解决由” 线程间操作无效: 从不是创建控件“xxx”的线程访问它。”
2.        异步模式.
                                                      ii.              
六、多播委托

额外知识 this 关键字
标识当前活动的对象.如果在窗体中,那么可以表示当前的Form
如果在事件中,表示当前激活事件的宿主.
Base关键字
当前对象的父对象.

委托的语法:
权限修饰符        委托关键字    委托返回值           委托名( [参数] )
public             delegate        void                GetInfo();//声明委托
权限修饰符        委托           变量名
public             GetInfo         getInfo; //声明委托变量

直接和方法调用一样.传递变量即可.
getInfo(str);//委托的第一种使用方式

问题一:为什么使用委托以后,还会出现跨线程访问的错误.

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


玄机论坛 C#委托详解
视频下载地址   http://pan.baidu.com/s/1gdAFesb

玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
帖子内网盘失效后请使用下面地址

http://bbs.msdn5.com/forum.php?mod=viewthread&tid=1218
如果失效请联系站长重新分享
回复

使用道具 举报

Solo 发表于 2014-10-28 21:27:01 | 显示全部楼层
我来了,赶紧来学习了~
玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
帖子内网盘失效后请使用下面地址

http://bbs.msdn5.com/forum.php?mod=viewthread&tid=1218
如果失效请联系站长重新分享
回复 支持 反对

使用道具 举报

aken 发表于 2014-10-28 23:09:17 | 显示全部楼层
站前排,以后要出名的...
玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
帖子内网盘失效后请使用下面地址

http://bbs.msdn5.com/forum.php?mod=viewthread&tid=1218
如果失效请联系站长重新分享
回复 支持 反对

使用道具 举报

老段啦 发表于 2014-10-29 15:36:08 | 显示全部楼层
必须顶起来 这个太重要了
玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
帖子内网盘失效后请使用下面地址

http://bbs.msdn5.com/forum.php?mod=viewthread&tid=1218
如果失效请联系站长重新分享
回复 支持 反对

使用道具 举报

inghot 发表于 2014-11-4 09:05:29 | 显示全部楼层
真是好教程啊。。
玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
帖子内网盘失效后请使用下面地址

http://bbs.msdn5.com/forum.php?mod=viewthread&tid=1218
如果失效请联系站长重新分享
回复 支持 反对

使用道具 举报

不太清楚 发表于 2014-11-15 09:20:56 | 显示全部楼层
一直不明白委托是干什么的,之前有看过几次,都没看明白。
看下这个教程。。。
玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
帖子内网盘失效后请使用下面地址

http://bbs.msdn5.com/forum.php?mod=viewthread&tid=1218
如果失效请联系站长重新分享
回复 支持 反对

使用道具 举报

lcylcyll 发表于 2015-1-8 00:40:42 | 显示全部楼层
一直不明白委托是干什么的
看下这个教程。。。
玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
帖子内网盘失效后请使用下面地址

http://bbs.msdn5.com/forum.php?mod=viewthread&tid=1218
如果失效请联系站长重新分享
回复 支持 反对

使用道具 举报

dabenzhog 发表于 2015-1-25 22:49:11 | 显示全部楼层
君临的课讲的很好,都能听明白,看了好几遍了,基本都能印在脑子里了,渴求新课程!!!
君临:能不能讲一讲关于串口通信的内容?
玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
帖子内网盘失效后请使用下面地址

http://bbs.msdn5.com/forum.php?mod=viewthread&tid=1218
如果失效请联系站长重新分享
回复 支持 反对

使用道具 举报

 楼主| 君临 发表于 2015-1-26 11:03:25 | 显示全部楼层
dabenzhog 发表于 2015-1-25 22:49
君临的课讲的很好,都能听明白,看了好几遍了,基本都能印在脑子里了,渴求新课程!!!
君临:能不能讲一讲 ...

手上没设备.倒是可以用手机(或者模拟器)当设备讲基础...
玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
帖子内网盘失效后请使用下面地址

http://bbs.msdn5.com/forum.php?mod=viewthread&tid=1218
如果失效请联系站长重新分享
回复 支持 反对

使用道具 举报

 楼主| 君临 发表于 2015-1-26 11:03:40 | 显示全部楼层
dabenzhog 发表于 2015-1-25 22:49
君临的课讲的很好,都能听明白,看了好几遍了,基本都能印在脑子里了,渴求新课程!!!
君临:能不能讲一讲 ...

手上没设备.倒是可以用手机(或者模拟器)当设备讲基础...
玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
帖子内网盘失效后请使用下面地址

http://bbs.msdn5.com/forum.php?mod=viewthread&tid=1218
如果失效请联系站长重新分享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 关闭注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

QQ|玄机论坛

GMT+8, 2020-1-20 12:08 , Processed in 0.178918 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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