- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* .NET框架程序设计P255 String对象最重要的特性是其恒定性。也就是说一个字符串一旦被创建,我们就不可能再将其变长变短或改变其中任何的字符。 这里,ToLower返回的是一个新的字符串,在其返回的字符串上进行的Substring也返回一个新的字符串,最后我们又使用EndsWith对其末尾的字符串进行检查。由于ToLower和Substring返回的两个临时字符串不再被应用程序代码所引用,因此垃圾收集器在下一次操作时将回收它们的内存。 可以发现,重复修改一个字符串效率会很低 利用Substring(int, int)方法可以从指定位置取出某String对象的部分或指定长度的内容,ToLower()大写改小写ToUpper()小写改大写 * 返回 0 ABC 8 ABC * 前导和尾部的\b序列确保只需要快乐完全是字的文本部分,在这个文本部分中(S+)://会选择一个或多个不是空白的字符,其后是://在HTTP * 客观的讲,使用函数指针作为其参数的函数如果直接调用函数或是直接把调用的函数的函数体放在这个主函数中也可以实现其功能。那么为什么还要使用函数指针呢?我们仔细看一下上面的main()函数就可以发现,main()函数两次调用了test函数,前一次求出最大最小值,后一次求出两数的和与差。如果我们test函数不用函数指针,而是采用直接在test函数中调用函数的方法,使用一个test函数还能完成这个功能吗?显然不行,我们必须写两个这样的test函数供main()函数调用,虽然大多数代码还是一样的,仅仅是调用的函数名不一样。上面仅仅是一个简单的例子,实际生活中也许main()函数会频繁的调用test(),而每次的差别仅仅是完成的功能不一样,也许第一次调用会要求求出两数的和与差,而下一次会要求求出最大值以及两数之和,第三次呢,也许是最小值和最大值,……,如果不用函数指针,我们需要写多少个这样的test()函数?显然,函数指针为我们的编程提供了灵活性。 * 除此以外,还可能由于错误的管理地址,将数据写入错误地址,造成程序的崩溃;还可能由于对指针不恰当的赋值操作产生悬浮指针;还可能产生内存越界,内存泄漏等等问题 C#中的委托和指针不一样,指针不通过MSIL而是直接和内存打交道,这也是指针不安全的原因所在,当然也是采用指针能够提高程序运行速度的缘故;委托不与内存打交道,而是把这一工作交给CLR去完成。CLR无法阻止将不安全的代码调用到本机(非托管)代码中或执行恶意操作。然而当代码是类型安全时,CLR的安全性强制机制确保代码不会访问本机代码,除非它有访问本机代码的权限 * 构造MyPoint时传入的是一个方法,而不是一个参数 * 对一个对象数组排序时,也需要一个函数参数,用来比较两个对象的大小 * ControName.Event是控件名称和该控件的事件名;this是当前窗体; methodName是处理该事件的方法。 第5章:C#进阶 * 5.7.3事件(Event) 事件是类发出的通知,指出发生了某种事情。其它的类可以通知执行某种操作。 代理在处理事件中使用。 第5章:C#进阶 * 声明并使用事件的步骤 1.为事件建立代理; 2.创建一个类给事件处理程序传递参数; 3.声明事件对应的代码; 4.创建事件发生时将执行的代码(处理程序); 5.使事件发生。 第5章:C#进阶 * 声明并使用事件的步骤(1/5) public delegate void EventHandlerName(object souece, xxxEventArgs e); 1.声明一个多点代理(Multicast delegate) 表明激发事件的源对象 与事件相关的信息 EventHandlerName是事件处理程序对应代理的名称。事件的代理接受两个参数: object source是引发事件的源, xxxEventArgs e是一个类,包含事件处理程序可以使用的数据,由EventArgs派生而来。 如:delegate void CharEventHandler(object source, CharEventArgs e); 第5章:C#进阶 * 例如:为事件创建一个代理,表明要代理的事件是检查赋给的字符,如果是特定的字符,则事件发生。 delegate void CharEventHandler(object source, CharEventArgs e); 第5章:C#进阶 * 声明并使用事件的步骤(2/5) 2.创建一个将数据传递给事件处理程序的新类 包含用于存储所需值的数据成员。 public class xxxEventArgs : EventArgs { //data member public xx
您可能关注的文档
- AutoCAD2013实用教程 教学课件 作者 郝坤孝吕安吉季阳萍 编著 第7章 三维绘图基础.ppt
- AutoCAD案例应用教程 教学课件 作者 何友义 第5章.ppt
- AutoCAD操作教程 教学课件 作者 2010中文版 教程1 3 第1章.ppt
- AutoCAD操作教程 教学课件 作者 2010中文版 教程1 3 第3章.ppt
- AutoCAD操作教程 教学课件 作者 2010中文版 教程4 12 第4章.ppt
- AutoCAD操作教程 教学课件 作者 2010中文版 教程4 12 第5章.ppt
- AutoCAD操作教程 教学课件 作者 2010中文版 教程4 12 第6章.ppt
- AutoCAD操作教程 教学课件 作者 2010中文版 教程4 12 第7章.ppt
- AutoCAD电气工程绘图教程 教学课件 作者 吴秀华 电力工程CAD1.ppt
- AutoCAD电气工程绘图教程 教学课件 作者 吴秀华 电力工程CAD2.ppt
- C#编程和.NET框架 教学课件 作者 崔建江 第6章 .NET框架 第六章.ppt
- C#编程和.NET框架 教学课件 作者 崔建江 第7章 ADO.NET程序开发 第七章.ppt
- C#编程语言基础和应用 教学课件 作者 张世明 朱彬 封面.ppt
- C#程序设计案例教程 教学课件 作者 教学课件 第1章.ppt
- C#程序设计案例教程 教学课件 作者 教学课件 第2章.ppt
- C#程序设计案例教程 教学课件 作者 教学课件 第3章.ppt
- C#程序设计案例教程 教学课件 作者 教学课件 第6章.ppt
- C#程序设计案例教程 教学课件 作者 教学课件 第8章.ppt
- C#程序设计案例教程 教学课件 作者 教学课件 第9章.ppt
- C#程序设计案例教程 教学课件 作者 教学课件 第10章.ppt
最近下载
- 音响系统施工方案.docx
- 《C#程序设计》课程教学大纲.doc VIP
- 儿童呼吸科课程设计.docx VIP
- (高清版)B-T 9254.2-2021 信息技术设备、多媒体设备和接收机 电磁兼容 第2部分:抗扰度要求.pdf VIP
- 公园音响系统安装方案.docx VIP
- 跌倒、坠床与压疮的预防与护理.pptx
- 医院建筑工程施工方案(3篇).docx VIP
- 心肺复苏ppt讲课开场白.pptx VIP
- (高清版)B-T 9254.1-2021 信息技术设备、多媒体设备和接收机 电磁兼容 第1部分 发射要求.pdf VIP
- 基于模型的系统工程(MBSE)及MWORKS实践 课件全套 聂兰顺 第1--10章 引论、 MBSE语言、工具、方法论---MBSE未来发展趋势.pptx
文档评论(0)