C#windows程序设计经典案例汇总.ppt

上传人:tia****nde 文档编号:3380667 上传时间:2019-12-13 格式:PPT 页数:46 大小:319.84KB
返回 下载 相关 举报
C#windows程序设计经典案例汇总.ppt_第1页
第1页 / 共46页
C#windows程序设计经典案例汇总.ppt_第2页
第2页 / 共46页
C#windows程序设计经典案例汇总.ppt_第3页
第3页 / 共46页
点击查看更多>>
资源描述
软件设计环境课程概念汇总,C#,目录,1.托管代码2.命名空间3.类与对象4.控制台程序类Console5.装箱和拆箱6.引用类型的变量与值变量7.结构类型8.枚举类型9.C#编程常用的类及其常用属性、方法10.面向对象程序设计的基本概念,C#,目录,11.构造函数12.析构函数13.静态成员14.结构与类的区别15.属性16.方法的参数17.索引器18.继承19.委托20.接口,C#,1.托管代码,.NET编译生成的中间语言叫托管代码,也叫MSIL(microsoftintermediatelanguage,中间层语言)不依赖于机器,不依赖于操作系统。,C#,2.命名空间,命名空间”是.NET中的各种语言使用的一种代码组织的形式。C#有1000多个类,每个类都放在自己的命名空间里。分为:系统命名空间和用户自定义命名空间。使用Using关键字来导入命名空间,以便使用其中的类。,C#,3.类与对象,类是一种数据结构,它可以封装数据成员、方法成员和其他的类。C#所有的语句都必须包含在类内,类是C#语言的核心。类也分为内置类和用户自定义类。内置类存放在各自的命名空间中。用户自定义类关键字为class,语法如下:,class类名类体,C#,4.控制台程序类Console,C#内置类,实现控制台应用程序的标准输入、输出。常用方法:Write(内容):在控制台上输出内容后不换行,后面的内容紧跟在前面。WriteLine(内容):在控制台上输出内容后立即换行,后面的内容输出在下一行。Read():在控制台上输入单个字符赋值给Char型变量ReadLine():在控制台上输入多个字符赋值给String型变量,C#,装箱:值类型的数据隐式地转换成一个对象类型。拆箱:将一个对象类型的数据显式地转换成一个值类型数据。,5.装箱和拆箱,C#,值类型的变量其内容是对象的值;引用类型的变量其内容是对象的地址而不是值,给引用变量赋值要使用new操作符。,6.引用类型的变量与值类型的变量,C#,7.结构类型,把一系列相关的变量组织成一个单一实体的类型称为结构类型。其中的每个变量称为结构的成员。结构用struct关键字定义。结构的特点:1、值类型2、向方法传递一个结构类型的变量时,按数值传递3、结构的实例化可以不用new运算符。在结构体中含有构造函数时,必须用new运算符。4、结构中可以声明构造函数,但它们必须含有参数。5、在结构中初始化成员是错误的。,C#,8.枚举类型,枚举类型也是一种自定义值类型,枚举类型的声明用关键字enum枚举的实质是符号常量的集合,每个符号常量关联一个值(默认是int型的)使用枚举的好处在于提高程序的可读性枚举通常和分支语句结合使用在变量的值可以预知的情况下,可以去定义枚举类型。,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:非静态方法,求子串位置语法为:母串.IndexOf(子串,搜索起始序号,搜索的个数)注意:子串可以为单个字符或者多个字符若子串不存在则返回-1;存在则返回其在母串的起始位置的索引值,C#,(4)Format:静态方法,格式化字符串语法为:String.Format(指定格式,待格式化的字符串)例:stringstr1,str2;str1=C#;str2=经典!;label3.Text=String.Format(0,1!,str1,str2);,C#,(5)Split:非静态方法,把整串按照某个分隔符分成一系列小的字符串,返回一个字符串数组。语法为:待分割的串.Split(分隔符),C#,(6)substring:非静态方法,对字符串从指定索引处取指定个数的字符串。语法:str1.Substring(指定索引,个数);,C#,2)Math类:静态方法,(1)Abs(参数):求参数的绝对值,结果为整型;intn=Math.Abs(-8);(2)Exp(次幂):返回e的指数次幂,结果为double型;doublem=Math.Exp(2);(3)Pow(指定数字,指定次幂):返回指定数字的指定次幂,结果为double型;doublem=Math.Pow(2,2);(4)Sqrt(参数):返回参数的平方根,结果为double型;doublem=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.Random类:专门产生随机数的类。常用方法(均为非静态方法):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#的集合类,该类的数据类型为Object。使用ArrayList类需引入System.Collections命名空间.,C#,8)List类是ArrayList类的泛型等效类。,属于System.Collections.Generic命名空间。,C#,9)Dictionary类:二维集合类每一个元素都是一个键值对(由2个元素组成:键和值)键必须是唯一的,而值不需要唯一键和值都可以是任何类型通过对象名.key去找到对应的值。好处在于:数据量大时通过键来检索值的速度是非常快的Dictionary对象在使用前,必须声明它的键类型和值类型。属于System.Collections.Generic命名空间。,C#,10.面向对象程序设计的基本概念,类和对象属性、方法和事件封装:通过类还实现,提高了代码的可用性和安全性继承:减少了代码书写量多态:同样的成员签名却实现不同的功能重载与重写,C#,重载:同一个类中,方法名称相同,但参数类型或参数个数不同就会有不同的具体实现。重写:方法名称相同,参数类型或参数个数也相同但有不同的具体实现。体现在基类和派生类的同名方法中。通过在基类的方法名前加virtual关键字、派生类的同名方法名前加override关键字来实现。,C#,封装、继承和多态是面向对象程序设计语言的3个主要特征。,C#,11构造函数,构造函数是用来对类的对象进行初始化的特殊方法。1.一般地,构造函数总是public类型的。2.构造函数名必须与它所在的类同名;不声明返回类型,并且没有任何返回值。这与返回值类型为void的函数不同。3.构造函数参数可以没有,也可以有一个或多个。,C#,当创建派生类的对象时,就会展开一个链式的构造函数调用。派生类构造函数在执行它自己的构造函数之前,首先会显示或隐式地调用基类的构造函数,默认情况下调用基类中的无参构造函数。(自顶向下调用),C#,12析构函数,析构函数是用于实现析构类实例(即释放对象)的方法。对象生命周期结束时自动调用析构函数,释放其所占的内存。调用的顺序就像栈结构,先进后出,最后生成的对象先被释放。声明的语法形式:析构函数名()析构函数体,C#,说明:1.析构函数名也必须与类名相同,且前面需加“”。2.析构函数不能写返回类型,也不能带参数,因此它不可能被重载。3.一个类最多只能有一个析构函数。4.一个类如果没有显式地声明析构函数,则编译器将自动产生一个缺省的析构函数。5.析构函数不能由程序显式地调用,而是由系统在释放对象时自动调用。6.如果这个对象是一个派生类对象,那么在调用析构函数时也会产生链式反应,首先执行派生类的析构函数,然后执行基类的析构函数,执行顺序正好与构造函数相反。,【例4】,C#,13静态成员,类中的静态成员包括静态字段和静态方法。静态成员属于类所有,非静态成员属于类的对象所有。静态成员用static关键词修饰。静态字段的存储空间在类公共区,不属于任何一个类对象。静态方法只能访问静态字段,不能访问类中的非静态成员。静态构造函数的目的是用于对静态字段进行初始化,不能对非静态数据成员进行初始化。,C#,说明:1.静态构造函数名必须与类同名。2.静态构造函数不能有参数。3.如果类中没有声明静态构造函数,而又包含静态字段,那么编译器会自动生成一个默认的静态构造函数。,C#,14.结构与类的区别,引用类型(定义在堆上),必须使用new实例化,系统会提供默认的构造函数。构造函数也不必初始化字段,有析构函数,可以被继承,可以,C#,15.属性,属性也是类的成员,它用来描述对象的特征。它的用处在于:提供灵活的机制来读取私有字段的值。属性总是伴随着私有字段的出现而出现,它的本质是方法,在这种方法中包含“访问器”:get访问器(也称读访问器)和set访问器(也称写访问器),分别用来将类的私有字段值读出来以及对其进行赋值。,C#,属性的声明语法格式:属性修饰符类型属性名getreturn私有成员名Set私有成员名=value,C#,属性的分类只读属性(只含有get访问器)只能读出私有字段的值,无法对其修改只写属性(只含有set访问器)只能给私有字段赋值,无法将其读出读写属性(两者都含)既能赋值也能读出。,C#,16.方法的参数,值参数(参数前没有修饰符)引用参数(行参数前有ref修饰符)输出参数(参数前有out修饰符)可变长度参数(参数前有params修饰符),值参数:形实参分居,形参变,实参不变引用参数:形实参同居,形参变,实参跟着变输出参数:形实参同居,形参变,实参跟着变;用于从方法中传出值,必须在方法体内被赋值。数组参数:它提供了一个便利:能够给方法传递任意个数的参数。,C#,17.索引器,索引器是什么?它是类的成员;它是一种灵活的访问机制;它实现了对类或结构的私有的数组或者集合成员的访问,使得类或结构的对象可以像数组一样使用。它类似于属性,也使用get和set访问器,不同之处在于它们的访问器有参数,且它的名字叫“this”。,C#,索引器和属性的区别1、定义方式不同:索引器要用this关键字,而属性没有。2、访问器不同:索引器的访问器要有索引参数,属性没有。3、服务对象不同:索引器为私有集合类成员服务,属性为私有字段成员服务。,C#,C#中只允许单继承,即一个派生类只能有一个基类。C#中继承是可传递的,如果C从B派生,B从A派生,那么C不仅继承B的成员,还继承A的成员。C#中派生类可添加新成员,但不能删除基类的成员。C#中派生类不能继承基类的构造函数和析构函数,但能继承基类的属性。C#中派生类可以和基类有同名成员,当重名时,要在派生类的同名成员前加new关键字。C#中派生类对象也是基类的对象,但基类对象却不一定是派生类的对象。也就是说,派生类的实例可以赋值给基类对象,但反之则不可以。,C#中的继承具有以下特点:,18.继承,C#,19.委托,委托的本质也是一种用户自定义的类型,可以在程序的任何位置去定义(类里或者类外)。使用之前需实例化(如同inta),实例化时把方法作为参数,说明要代理的对象。含有委托的程序编程的流程:先声明委托,然后声明被代理的方法(或者顺序相反),接着将方法作为委托的参数去实例化委托,最后由委托实例去执行方法。,C#,20.接口,接口定义了一系列操作,但是不负责这些操作的具体实现。接口只能包含方法、属性、索引器、事件4种成员。接口的实现由类或者结构来完成。关键字:interface,基接口可以有多个,实现了多重继承,C#,复习结束!,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!