c#windows程序设计经典案例汇总

上传人:san****019 文档编号:70192052 上传时间:2019-01-16 格式:PPT 页数:46 大小:300.31KB
返回 下载 相关 举报
c#windows程序设计经典案例汇总_第1页
第1页 / 共46页
c#windows程序设计经典案例汇总_第2页
第2页 / 共46页
c#windows程序设计经典案例汇总_第3页
第3页 / 共46页
c#windows程序设计经典案例汇总_第4页
第4页 / 共46页
c#windows程序设计经典案例汇总_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《c#windows程序设计经典案例汇总》由会员分享,可在线阅读,更多相关《c#windows程序设计经典案例汇总(46页珍藏版)》请在金锄头文库上搜索。

1、软件设计环境课程概念汇总,C#,目录,1.托管代码 2.命名空间 3.类与对象 4.控制台程序类Console 5.装箱和拆箱 6.引用类型的变量与值变量 7.结构类型 8. 枚举类型 9.C#编程常用的类及其常用属性、方法 10.面向对象程序设计的基本概念,C#,目录,11. 构造函数 12. 析构函数 13. 静态成员 14. 结构与类的区别 15. 属性 16. 方法的参数 17. 索引器 18. 继承 19. 委托 20. 接口,C#,1.托管代码,.NET编译生成的中间语言叫托管代码,也叫MSIL(microsoft intermediate language,中间层语言)不依赖于机

2、器,不依赖于操作系统。,C#,2.命名空间,命名空间” 是.NET中的各种语言使用的一种代码组织的形式。C#有1000多个类,每个类都放在自己的命名空间里。 分为:系统命名空间和用户自定义命名空间。 使用Using 关键字来导入命名空间,以便使用其中的类。,C#,3.类与对象,类是一种数据结构,它可以封装数据成员、方法成员和其他的类。 C#所有的语句都必须包含在类内,类是C#语言的核心。 类也分为内置类和用户自定义类。内置类存放在各自的命名空间中。 用户自定义类关键字为class,语法如下:,class 类名 类体 ,C#,4.控制台程序类Console,C#内置类,实现控制台应用程序的标准输

3、入、输出。 常用方法: Write(内容) :在控制台上输出内容后不换行,后面的内容紧跟在前面。 WriteLine (内容) :在控制台上输出内容后立即换行,后面的内容输出在下一行。 Read() :在控制台上输入单个字符赋值给Char型变量 ReadLine():在控制台上输入多个字符赋值给String型变量,C#,装箱:值类型的数据隐式地转换成一个对象类型。 拆箱:将一个对象类型的数据显式地转换成一个值类型数据。,5.装箱和拆箱,C#,值类型的变量其内容是对象的值; 引用类型的变量其内容是对象的地址而不是值,给引用变量赋值要 使用new操作符。,6.引用类型的变量与值类型的变量,C#,7

4、.结构类型,把一系列相关的变量组织成一个单一实体的类型称为结构类型。其中的每个变量称为结构的成员。 结构用struct 关键字定义。 结构的特点: 1、值类型 2、向方法传递一个结构类型的变量时,按数值传递 3、结构的实例化可以不用new运算符。在结构体中含有构造函数时,必须用new运算符。 4、结构中可以声明构造函数,但它们必须含有参数。 5、在结构中初始化成员是错误的。,C#,8. 枚举类型,枚举类型也是一种自定义值类型,枚举类型的声明 用关键字enum 枚举的实质是符号常量的集合,每个符号常量关联一个值(默认是int型的) 使用枚举的好处在于提高程序的可读性 枚举通常和分支语句结合使用

5、在变量的值可以预知的情况下,可以去定义枚举类型。,C#,9.C# 编程常用的类及其常用属性、方法,1)String类 属性:length 属性使用的语法为:对象名.length 方法有:,C#,(1)Compare: 特点:静态方法,通过类名调用,用于比较2个字符串是否相等。 返回值:逐个按ascii码比较大小,若两串相等返回值为0;小于返回值为-1;大于返回值为1 语法:String.Compare(str1,str2),C#,(2)CompareTo: 非静态方法,需要string类的对象调用 str1.CompareTo(str2),C#,(3)IndexOf:非静态方法,求子串位置 语

6、法为: 母串.IndexOf(子串,搜索起始序号,搜索的个数) 注意:子串可以为单个字符或者多个字符 若子串不存在则返回-1;存在则返回其在母串的起始位置的索引值,C#,(4)Format:静态方法,格式化字符串 语法为:String.Format(指定格式,待格式化的字符串) 例:string str1, str2; str1 = “C#“; str2 = “经典!“; label3.Text =String.Format(“0,1!“, str1, str2);,C#,(5)Split:非静态方法,把整串按照某个分隔符分成一系列小的字符串,返回一个字符串数组。 语法为: 待分割的串.Spl

7、it(分隔符),C#,(6)substring:非静态方法,对字符串从指定索引处取指定个数的字符串。 语法:str1.Substring(指定索引,个数);,C#,2)Math类:静态方法,(1)Abs(参数):求参数的绝对值,结果为整型; int n = Math.Abs (-8); (2)Exp(次幂):返回e的指数次幂,结果为double型; double m = Math.Exp(2); (3)Pow(指定数字,指定次幂):返回指定数字的指定次幂,结果为double型; double m = Math.Pow (2,2); (4)Sqrt(参数):返回参数的平方根,结果为double型

8、; double m = Math.Sqrt(4);,C#,3)Convert类强制转换类。常用的静态方法:,C#,4) DateTime类:时间运算类,常用属性: Now:获得系统时间,结果为datetime类型 Date:获得日期部分,结果为datetime类型 Year:获得日期的年,结果为int类型 Month:获得日期的月,结果为int类型 Day:获得日期的日, 结果为int类型 Dayofweek:获得日期是星期几, 结果为Dayofweek类型,值为英文下的星期。通过Convert.toint可以将英文星期转换为其对应的序号,sunday的序号为0,C#,5) System.R

9、andom类:专门产生随机数的类。 常用方法(均为非静态方法): Next():产生1个02147483647之间的整数 Next(i):产生1个0i之间的整数(包含边界) Next(i,j):产生1个ij之间的整数(包含i,但不包含j) NextDouble():产生1个01之间的随机小数整数(不包括0和1),C#,6) Array类:是所有数组类型的基类型。 常用的属性和方法如下: 1. Length属性 用于返回数组的大小。结果为整型。 使用Length属性的一般形式为: .Length,C#,7) ArrayList类,ArrayList类用于建立不定长度的集合,属于C#的集合类,该类

10、的数据类型为Object。 使用ArrayList类需引入System.Collections命名空间.,C#,8)List类是ArrayList类的泛型等效类。,属于System.Collections.Generic命名空间。,C#,9)Dictionary类:二维集合类 每一个元素都是一个键值对(由2个元素组成:键和值) 键必须是唯一的,而值不需要唯一 键和值都可以是任何类型 通过对象名. key去找到对应的值。 好处在于:数据量大时通过键来检索值的速度是非常快的 Dictionary对象在使用前,必须声明它的键类型和值类型。 属于System.Collections.Generic命名

11、空间。,C#,10.面向对象程序设计的基本概念,类和对象 属性、方法和事件 封装: 通过类还实现,提高了代码的可用性和安全性 继承:减少了代码书写量 多态:同样的成员签名却实现不同的功能 重载与重写,C#,重载:同一个类中,方法名称相同,但参数类型或参数个数不同就会有不同的具体实现。 重写: 方法名称相同,参数类型或参数个数也相同但有不同的具体实现。体现在基类和派生类的同名方法中。 通过在基类的方法名前加virtual关键字、派生类的同名方法名前加override关键字来实现。,C#,封装、继承和多态是面向对象程序设计语言的3个主要特征。,C#,11 构造函数,构造函数是用来对类的对象进行初始

12、化的特殊方法。 1.一般地,构造函数总是public类型的。 2.构造函数名必须与它所在的类同名;不声明返回类型,并且没有任何返回值。这与返回值类型为void的函数不同。 3.构造函数参数可以没有,也可以有一个或多个。,C#,当创建派生类的对象时,就会展开一个链式的构造函数调用。派生类构造函数在执行它自己的构造函数之前,首先会显示或隐式地调用基类的构造函数,默认情况下调用基类中的无参构造函数。(自顶向下调用),C#,12 析构函数,析构函数是用于实现析构类实例(即释放对象)的方法。 对象生命周期结束时自动调用析构函数,释放其所占的内存。调用的顺序就像栈结构,先进后出,最后生成的对象先被释放。

13、声明的语法形式: 析构函数名( ) 析构函数体 ,C#,说明: 1.析构函数名也必须与类名相同,且前面需加“” 。 2.析构函数不能写返回类型,也不能带参数,因此它不可能被重载。 3.一个类最多只能有一个析构函数。 4.一个类如果没有显式地声明析构函数,则编译器将自动产生一个缺省的析构函数。 5.析构函数不能由程序显式地调用,而是由系统在释放对象时自动调用。 6.如果这个对象是一个派生类对象,那么在调用析构函数时也会产生链式反应,首先执行派生类的析构函数,然后执行基类的析构函数,执行顺序正好与构造函数相反。,【例4】,C#,13 静态成员,类中的静态成员包括静态字段和静态方法。 静态成员属于类

14、所有,非静态成员属于类的对象所有。 静态成员用static关键词修饰。 静态字段的存储空间在类公共区,不属于任何一个类对象。 静态方法只能访问静态字段,不能访问类中的非静态成员。 静态构造函数的目的是用于对静态字段进行初始化,不能对非静态数据成员进行初始化。,C#,说明: 1.静态构造函数名必须与类同名。 2.静态构造函数不能有参数。 3.如果类中没有声明静态构造函数,而又包含静态字段,那么编译器会自动生成一个默认的静态构造函数。,C#,14.结构与类的区别,引用类型(定义在堆上),必须使用new实例化,系统会提供默认的构造函数。 构造函数也不必初始化字段,有析构函数,可以被继承,可以,C#,

15、15.属 性,属性也是类的成员,它用来描述对象的特征。它的用处在于:提供灵活的机制来读取私有字段的值。 属性总是伴随着私有字段的出现而出现,它的本质是方法,在这种方法中包含“访问器”:get访问器(也称读访问器)和set访问器(也称写访问器) ,分别用来将类的私有字段值读出来以及对其进行赋值。,C#,属性的声明语法格式: 属性修饰符 类型 属性名 get return 私有成员名 Set 私有成员名=value ,C#,属性的分类 只读属性(只含有get访问器) 只能读出私有字段的值,无法对其修改 只写属性(只含有set访问器) 只能给私有字段赋值,无法将其读出 读写属性(两者都含) 既能赋值

16、也能读出。,C#,16.方法的参数,值参数(参数前没有修饰符) 引用参数(行参数前有ref修饰符) 输出参数(参数前有out修饰符) 可变长度参数(参数前有params修饰符),值参数:形实参分居,形参变,实参不变 引用参数:形实参同居,形参变,实参跟着变 输出参数:形实参同居,形参变,实参跟着变;用于从方法中传出值,必须在方法体内被赋值。 数组参数:它提供了一个便利:能够给方法传递任意个数的参数。,C#,17.索引器,索引器是什么? 它是类的成员; 它是一种灵活的访问机制; 它实现了对类或结构的私有的数组或者集合成员的访问,使得类或结构的对象可以像数组一样使用。 它类似于属性,也使用get和set访问器,不同之处在于它们的访问器有参数,且它的名字叫“this”。,C#,索引器和属性的区别 1、定义方式不同:索引器要用this关键字,而属性没有。 2、访问器不同:索引器的访问器要有索引参数,属性没有。 3、服务对象不同:索引器为私有集合类成员服务,属性为

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

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

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