电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

课程6+上课日志2

19页
  • 卖家[上传人]: y****g
  • 文档编号:131873033
  • 上传时间:2020-05-10
  • 文档格式:DOC
  • 文档大小:194KB
  • / 19 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、课程6 委托、匿名方法、Lambda表达式、LINQ查询表达式上课日志2一、补充VS中自定义C#快速简写代码(输入简写字母后按两次Tab键自动输入) 在VS中选择工具代码段管理器(语言下拉框选择Visual C#,如下图1所示),位置下面的下拉列表框再选择Visual C#,然后复制位置文本框里的路径,即找到代码段简写文件(*.snippet)。然后随便复制一个(比如cw.snippet),复制的位置可以任意(注意两点:第一、不要在原来的cw.snippet位置,第二、需要新建一个文件夹(zdy)来存储复制过来的cw.snippet文件)然后再对复制过来的文件修改(比如需要创建快速输入Console.ReadKey(),可以把文件名改为crk.snippet),接着打开重命名后的文件(crk.snippet)修改里面的内容(如图2所示),参照图3进行修改(修改绿色框住的4个地方即可)最后单击图1下面的添加按钮,选择到自定义的文件夹(zdy)。图1图2图3二、泛型委托FuncFunFunc委托只有泛型版本的,接受参数个数可以是若干个,也可以是没有参数,但是一定有返回值的方法。Func这个

      2、表示没有参数,只有返回值的Func这个表示有1个参数,有返回值的Func这个表示有2个参数(前两个参数T1,T2表示参数,最后TResult返回值),有返回值的Func这个表示有3个参数(前三个参数T1,T2,T3,表示参数,最后TResult返回值),有返回值的.总之Func委托最后一个TResult表示返回值,前面的不管多少个T都是表示参数例:class Program static void Main(string args) #region 无参数有返回值的Fun委托 Func fun1 = M1; int n1 = fun1(); Console.WriteLine(n1); #endregion #region 有参数有返回值的Fun委托 Func fun2 = M2; int n2 = fun2(1, 2, 3); Console.WriteLine(n2); #endregion Console.ReadKey(); static int M1() return 1; static int M2(int n1, int n2, int n3) return n1 + n

      3、2 + n3; 三、多播委托多播委托就是一个委托同时绑定多个方法,多播委托也叫委托链、委托组合。1、绑定无返回值的多个委托class Program static void Main(string args) #region 绑定无返回值的多个委托 Action action = M1;/这句话只绑定一个M1方法(绑定第一个方法不能用+=复制,因为开始action为null,所以只能用=赋值),下面再给acion绑定方法 action += M2; action += M3; action += M4; action += M5; action -= M3;/解除绑定M3方法(即是用-=赋值为解除绑定方法) action(多播委托); #endregion Console.ReadKey(); static void M1(string msg) Console.WriteLine(msg); static void M2(string msg) Console.WriteLine(msg); static void M3(string msg) Console.WriteLine(m

      4、sg); static void M4(string msg) Console.WriteLine(msg); static void M5(string msg) Console.WriteLine(msg); 2、绑定有返回值的多个委托,如何获取到每个方法的返回值class Program static void Main(string args) #region 绑定有返回值的多个委托 Func fc = T1; fc += T2; fc += T3; string result= fc(有参数有返回值的多播委托); Delegate delegates = fc.GetInvocationList();/按照调用顺序返回此多播委托的调用列表。即是有几个方法就有个几个委托,返回值为Delegate数组 for (int i = 0; i delegates.Length; i+)/循环遍历Delegate数组即可得到每个委托对象.这样就可以逐个委托调用,如果有返回值,可以逐个拿到 /delegatesi(“”);这句不行,因为Delegate是抽象类,所以不能直接调用,需要强转为

      5、子类Func /(delegatesi as Func)();/没有返回值就这样就可以,如果有返回值类似下一行代码就可以 string s = (delegatesi as Func)(获取多播委托每个方法的返回值); Console.WriteLine(s); #endregion Console.ReadKey(); static string T1(string msg) return msg+1; static string T2(string msg) return msg + 2; static string T3(string msg) return msg + 3; 四、匿名方法1、匿名类static void Main(string args) #region 匿名类 var Anon = new Name = 小明, Age = 3, Sex = 男 ; Console.WriteLine(我的名字是:0,性别为1,年龄是2, Anon.Name, Anon.Sex, Anon.Age); Console.ReadKey(); #endregion 2、匿名方法 匿

      6、名方法,即是没有名字的方法,不能直接在类中定义,而是在给委托变量赋值的时候,需要赋值一个方法,此时可以“现做现卖”,定义一个匿名方法传递给该委托。匿名方法关键字delegate,delegate后的括号写方法参数, 里面写方法体,这是一个赋值语句所以最后需要分号。例1: #region 匿名方法(无参数无返回值) /如果存在一个已定义好的M1方法,则直接可以把该方法赋给委托变量md / Action md = M1; /如果不存在已定义好的方法,则可以使用匿名方法赋给委托变量,即现定义一个方法给委托变量 Action md = delegate() Console.WriteLine(ok); ; md();/调用匿名方法 Console.ReadKey(); #endregion static void M1() Console.WriteLine(ok); 例2:#region 有参数无返回值的匿名方法 Action md2 = delegate(string msg) Console.WriteLine(Hello! + msg); ; md2(大家好!); Console.ReadKey(); #endregion例3:#region 有参数有返回值的匿名方法 Func ad = delegate(int n1, int n2, int n3)/提问:这里如果不采用匿名方法怎么写 return n1 + n2 + n3; ; int result = ad(12, 10, 8);

      《课程6+上课日志2》由会员 y****g分享,可在线阅读,更多相关《课程6+上课日志2》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.