C#程序设计案例库、源码等资源电子课件(4)知识课件

上传人:yulij****0329 文档编号:138519163 上传时间:2020-07-16 格式:PPT 页数:112 大小:2.36MB
返回 下载 相关 举报
C#程序设计案例库、源码等资源电子课件(4)知识课件_第1页
第1页 / 共112页
C#程序设计案例库、源码等资源电子课件(4)知识课件_第2页
第2页 / 共112页
C#程序设计案例库、源码等资源电子课件(4)知识课件_第3页
第3页 / 共112页
C#程序设计案例库、源码等资源电子课件(4)知识课件_第4页
第4页 / 共112页
C#程序设计案例库、源码等资源电子课件(4)知识课件_第5页
第5页 / 共112页
点击查看更多>>
资源描述

《C#程序设计案例库、源码等资源电子课件(4)知识课件》由会员分享,可在线阅读,更多相关《C#程序设计案例库、源码等资源电子课件(4)知识课件(112页珍藏版)》请在金锄头文库上搜索。

1、单元4 C#进阶编程,知识目标,(1)掌握结构化的异常处理机制; (2)深刻理解委托和事件; (3)掌握枚举和结构; (4)掌握字符串的常用方法; (5)掌握正则表达式的基本用法; (6)掌握常用的集合类和泛型集合类。,能力目标,(1)能够捕获并处理异常; (2)能使用枚举或结构描述数据; (3)能对文本进行较为复杂的处理; (4)能使用正则表达式实现文本的验证; (5)能定义和使用委托类型; (6)能给对象添加事件并能处理事件; (7)能使用集合类存储数据,能编写基于栈、队列、链表、哈希表等数据结构的程序。,教学任务,任务1 异常处理 任务2 枚举和结构 任务3 委托和事件 任务4 字符串与

2、正则表达式 任务5 泛型和集合,引例,给定一个计算器程序,捕捉计算器中的异常,class Program static void Main(string args) int flag = 0; Console.WriteLine(请输入第一个操作数;); int num1 = int.Parse(Console.ReadLine(); Console.WriteLine(请输入第二个操作数:); int num2 = int.Parse(Console.ReadLine(); int result = 0; Console.WriteLine(请输入运算符(+、-、*、/):); string

3、 operater = Console.ReadLine(); if (operater = +) flag = 0; if (operater = -) flag = 1; if (operater = *) flag = 2; if (operater = /) flag = 3; ,switch (flag) case 0: result = num1 + num2; break; case 1: result = num1 - num2; break; case 2: result = num1 * num2; break; case 3: result = num1 / num2;

4、break; Console.WriteLine(num1 + operater + num2 + = + result); Console.ReadKey(); ,知识储备,知识点1:结构化异常处理,trycatchfinally语句。 知识点2:系统异常类。 知识点3:用户定义异常类。,知识点1:结构化异常处理,在C#中,程序中的运行时错误使用一种称为“异常”的机制在程序中传播。异常由遇到错误的代码引发,由能够更正错误的代码捕获。异常可由.NET Framework公共语言运行库(CLR)或由程序中的代码引发。 异常由从Exception派生的类表示,程序中发生一个异常时,就会生成一个异常

5、类的某种类型的对象。C#中使用try、catch、throw和finally四个关键字来管理的。 1Try/catch块 2Finally块,异常处理代码语法格式,Try 语句; Catch(Exception e) 语句; ,int SafeDivision(int x, int y) try return (x / y); catch (DivideByZeroException dbz) Console.WriteLine(Division by zero attempted!); return 0; ,/trycatch语句 int a;/ 声明变量 try / 试图捕获异常 / 将文

6、本转换为Int32类型的整数 a = Convert.ToInt32(textBox1.Text); catch / 发生异常时的处理 Console.WriteLine(提示:请将被除数的值输入为数字!); return; ,异常处理Finally块,Try 语句; Catch(Exception e) 语句; Finally 语句; ,int a;/ 声明变量 try / 试图捕获异常 / 将文本转换为Int32类型的整数 a = Convert.ToInt32(textBox1.Text); finally Console.WriteLine(感谢你使用本软件); ,异常处理捕获多个异常

7、,Try 语句; Catch(Exception e) 语句; Catch(Exception e) 语句; ,trycatchfinally语句,try /可能会导致异常的语句 catch (Exception e) /用于处理异常的语句 finally /清理代码 ,int a, b, c; try c = a / b; catch (DivideByZeroException) / 如果发生除数为0的异常 Console.WriteLine(提示:除数不能为!); return; finally / 无论是否发生异常,都正常结束 Console.WriteLine(感谢使用本软件!, 程

8、序结束); ,知识点2:系统异常类,知识点3:用户定义异常类,声明一个异常类的语法格式如下: 引发自定义异常的格式如下: throw(ExceptionName); 引发系统异常类的格式如下: throw new ;,class ExceptionName:Exception ,static void CopyObject(SampleClass original) if (original = null) throw new ArgumentException(Parameter cannot be null, original); ,引例分析与实现计算器程序异常捕捉,class Progr

9、am static void Main(string args) int flag = 0; int num1 = 0; int num2 = 0; int result = 0; try Console.WriteLine(请输入第一个操作数;); num1 = int.Parse(Console.ReadLine(); Console.WriteLine(请输入第二个操作数:); num2 = int.Parse(Console.ReadLine(); catch (Exception ex) Console.WriteLine(ex.Message); ,try Console.Writ

10、eLine(请输入运算符(+、-、*、/):); string operater = Console.ReadLine(); if (operater = +) flag = 0; if (operater = -) flag = 1; if (operater = *) flag = 2; if (operater = /) flag = 3; ,switch (flag) case 0: result = num1 + num2; break; case 1: result = num1 - num2; break; case 2: result = num1 * num2; break;

11、 case 3: result = num1 / num2; break; Console.WriteLine(num1 + operater + num2 + = + result); catch (Exception ex) Console.WriteLine(ex.Message); Console.ReadKey(); ,归纳总结,知识要点: (1)trycatch语句; (2)多重catch语句; (3)嵌套异常结构; (4)系统级异常类的基类Exception,常用系统异常类; (5)用户定义异常类。,拓展实践,对前面完成的猜数字游戏进行合理的异常捕捉。,单元4 C#进阶编程,任务

12、2 枚举和结构,引例,存储和读取一组学生的基本信息。,知识储备,知识点1:使用枚举描述数据。 知识点2:使用结构描述数据。 知识点3:结构与类的区别。,知识点1:使用枚举描述数据,枚举可以理解为一组常数的集合,并限定了常数的范围。 枚举是派生自System.Enum的一种独特的值类型。每种枚举类型均有一种基础类型,此基础类型可以是出char类型以外的任何整型。枚举元素的默认基础类型为int,默认情况第一个枚举元素的值为,后面每个元素一次递增1。,示例:实现学员按学习方向分类,强制指定枚举元素的值。,enum Direction Design, Business, Testing, Game ,

13、enum Direction Design = 1, Business = 2, Testing = 4, Game ,实践任务1,定义枚举,用来描述彩虹的颜色。,知识点2:使用结构描述数据,结构的定义语法中使用struct关键字,格式如下: 结构内容包括,构造函数、常数、字段、方法、属性、索引器、运算符和嵌套类型等。其中属性是无法初始化的,除非声明为const或static。,struct 结构名 /结构内容 ,示例:定义一个结构来解决学生信息的存储,struct Student public int no; public string name; public string sex; pu

14、blic Direction direction; public int credit; public bool isGraduate; public string Status() if (isGraduate) return 毕业; else return 在读; ,【例4-1】描述电影票的数据信息,struct Ticket Name name; DateTime datetime; string hall; string seat; string type; string remark; decimal price; enum Name 哈利波特1, 哈利波特2, 哈利波特3, 哈利波特4 ,实践任务2,定义一个游戏角色结构。,知识点3:结构与类的区别,在C#中结构和类大部分是一样的,结构拥有的成员和类也是一致的,二者唯一的差别在与存储位置不同。 类是引用类型,而结构是值类型。引用类型在堆中分配,内存管理由垃圾回收器处理。值类型在堆栈上或以内联方式分配,且在超出范围时释放。通常,值类型的分配和释放开销更小。然而,如果在要求大量的装箱和取消装箱操作的情况下使用,则值类

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号