第1部分 C#语言基础 1 基本语言要素.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * (1)把哈希表所有key放进一个ArrayList对象中,并执行排序 (2)按排好序的key 依次从哈希表取回相应的value。 //取出哈希表words的keys集合 的语法很简单 ArrayList aKeys = new ArrayList( words.Keys); //ArrayList的构 //建方法之一 aKeys.Sort(); //排序后,用foreach,则按排序后顺序迭代 foreach( string key in aKeys) //用foreach可避开显式转型 fwriter.WriteLine( “{0}:: {1}”, key, words[key]) 到此,WordCount的主体功能大致完成(附加选项的功能以后再实现) 延伸一下,key/value 是很常见的应用模型,为此C#专门定义了IDictionary接口来表现这个 抽象模型,而Hashtable是实现该接口的类,并具体将key和value定义为object。除Hashtable外,还有一些实现该接口的类型作了某些特化定义,以适合特殊场合。 WordCount程序功能基本实现,但为了程序健壮性,必须考虑容错能力,借助C#的异常处理机制可有效实现这方面设计。 异常处理由两部分构成 第一部分是异常抛出,当辨识到异常时 用throw表达式抛出 第二部分是异常捕获和处置异常, 用try-catch结构捕获异常并设置处理操作 文件读写是常见发生错误的地方,典型错误有 用户指定的文件不存在 没有提供文件名参数却要执行文件操作 文件类型不正确 读写时发生IO错误 下面代码展示了如何抛出这些异常: 1.17 异常处理exception //作为示例,这里定义一个openFile() 函数,主要作用是检查文件名参数是否有效 public StreamReader openFile( string file_name) { if ( file_name == null) //文件名未正确传入 throw new ArgumentNullException(); if (!File.Exists( file_name)) //指定文件未找到 { string msg = “Invalid File name : “ +file_name; throw new ArgumentException ( msg ); } if ( ! file_name.EndsWith( “.txt”))//非txt文件(程序只识别txt文件) { string msg =“Sorry. “; string ext = Path.GetExtension(file_name); if (ext != string.Empty) msg += “Do not support “ + ext + “files.”; throw new Exception ( msg); } return File.OpenText( file_name); } throw语句中 抛出的是一个Exception类对象,Exception类是所有异常类的基类,在Exception的类层次(类层次概念后述)中,越往后的子类所代表的异常越具体明确 。例如前面代码 中: Exception是一个泛指的异常,通常用来代表未知错误; ArgumentException是Exception的子类,表明是参数错; ArgumentNullException又是ArgumentException的子类,进一步指明了错误是因为是空参数 一旦抛出异常,程序的正常运行便暂停,异常机制会沿函数调用链条逆向搜索有能力处理该异常的catch子句 所谓有能力是指 catch语句的圆括号内声明的异常类型与当前抛出的异常匹配,此时程序就进入到该catch子句的处理流程中 catch子句须与try句块呼应,以下是异常捕捉代码示例 try { //openFile()如前定义,已包含了抛出异常的代码 StreamReader freader = openFile ( fname); //freader.ReadLine() 有出现IO错误的可能 while(( textline = freader.ReadLine()) !=null)

文档评论(0)

a13355589 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档