电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > DOC文档下载
分享到微信 分享到微博 分享到QQ空间

课程6+上课日志2

  • 资源ID:131873033       资源大小:194KB        全文页数:19页
  • 资源格式: DOC        下载积分:2金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要2金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

课程6+上课日志2

课程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二、泛型委托Func<T>Fun<T>Func委托只有泛型版本的,接受参数个数可以是若干个,也可以是没有参数,但是一定有返回值的方法。Func<TResult>这个表示没有参数,只有返回值的Func<T,TResult>这个表示有1个参数,有返回值的Func<T1,T2,TResult>这个表示有2个参数(前两个参数T1,T2表示参数,最后TResult返回值),有返回值的Func<T1,T2,T3,TResult>这个表示有3个参数(前三个参数T1,T2,T3,表示参数,最后TResult返回值),有返回值的.总之Func委托最后一个TResult表示返回值,前面的不管多少个T都是表示参数例:class Program static void Main(string args) #region 无参数有返回值的Fun委托 Func<int> fun1 = M1; int n1 = fun1(); Console.WriteLine(n1); #endregion #region 有参数有返回值的Fun委托 Func<int, int, int, int> 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 + n2 + n3; 三、多播委托多播委托就是一个委托同时绑定多个方法,多播委托也叫委托链、委托组合。1、绑定无返回值的多个委托class Program static void Main(string args) #region 绑定无返回值的多个委托 Action<string> 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(msg); 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<string, string> 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是抽象类,所以不能直接调用,需要强转为子类Func<string,string> /(delegatesi as Func<string,string>)();/没有返回值就这样就可以,如果有返回值类似下一行代码就可以 string s = (delegatesi as Func<string, string>)("获取多播委托每个方法的返回值"); 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、匿名方法 匿名方法,即是没有名字的方法,不能直接在类中定义,而是在给委托变量赋值的时候,需要赋值一个方法,此时可以“现做现卖”,定义一个匿名方法传递给该委托。匿名方法关键字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<string> md2 = delegate(string msg) Console.WriteLine("Hello!" + msg); ; md2("大家好!"); Console.ReadKey(); #endregion例3:#region 有参数有返回值的匿名方法 Func<int,int,int,int> ad = delegate(int n1, int n2, int n3)/提问:这里如果不采用匿名方法怎么写 return n1 + n2 + n3; ; int result = ad(12, 10, 8);

注意事项

本文(课程6+上课日志2)为本站会员( y****g)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.