第03章 面向对象的编程基础.ppt

上传人:豆**** 文档编号:50519977 上传时间:2022-10-15 格式:PPT 页数:72 大小:1.14MB
返回 下载 相关 举报
第03章 面向对象的编程基础.ppt_第1页
第1页 / 共72页
第03章 面向对象的编程基础.ppt_第2页
第2页 / 共72页
点击查看更多>>
资源描述

《第03章 面向对象的编程基础.ppt》由会员分享,可在线阅读,更多相关《第03章 面向对象的编程基础.ppt(72页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第第03章章 面向对象的编面向对象的编程基础程基础23.1 3.1 面向对象的程序设计面向对象的程序设计类与对象类与对象 类:类:一组具有相同数据结构和相同操作的对象的一组具有相同数据结构和相同操作的对象的 集合集合.例如例如:汽车汽车 对象(实例):对象(实例):类的实例化类的实例化.例如例如:卡车卡车 要使用对象,必须先定义类,然后再创建对象。要使用对象,必须先定义类,然后再创建对象。本资料由-校园大学生创业网-提供http:/ 3.1.1 类的组织类的组织1.类的声明类的声明 用用class定义类,声明类的形式为:定义类,声明类的形式为:附加声明附加声明 访问修饰符访问修饰符 class

2、 类名称类名称:基类基类,接口序列,接口序列 字段声明字段声明 构造函数构造函数 方法方法 事件事件 注意注意:中的内容可省或任中的内容可省或任选其一选其一,当两者都有时当两者都有时,先基先基类后接口类后接口43.1.1 3.1.1 类的组织(续)类的组织(续)public class Child private int age;private string name;/不带参数的构造函数不带参数的构造函数 public Child()name=none;/带参数的构造函数带参数的构造函数 public Child(string name,int age)53.1.1 3.1.1 类的组织(续

3、)类的组织(续)this.name=name;this.age=age;/输出方法输出方法 public void PrintChild()Console.WriteLine(0,1 years old.,name,age);public class Program63.1.1 3.1.1 类的组织(续)类的组织(续)public static void Main()/使用使用new关键字创建对象,关键字创建对象,new后是调用的构后是调用的构造函数造函数 Child child1=new Child(Zhang San,11);Child child2=new Child(Li Si,10)

4、;Child child3=new Child();/显示结果显示结果 Console.Write(Child#1:);child1.PrintChild();Console.Write(Child#2:);child2.PrintChild();Console.Write(Child#3:);child3.PrintChild();73.1.1 3.1.1 类的组织(续)类的组织(续)Console.ReadLine();82.对象的生存周期对象的生存周期 对象在建立时分配了内存,创建对象实际上作了对象在建立时分配了内存,创建对象实际上作了两个方面的工作:两个方面的工作:(1 1)使用)使用

5、newnew保留字要求系统分配内存;保留字要求系统分配内存;(2 2)使用构造函数初始化数据。)使用构造函数初始化数据。93.1.1 3.1.1 类的组织(续)类的组织(续)C#C#也允许在程序中定义析构函数(定义方法与也允许在程序中定义析构函数(定义方法与C+C+类似),但是类似),但是 C#C#不允许在程序中调用析构函不允许在程序中调用析构函数,而只能由垃圾回收器调用,原因是如果把销毁数,而只能由垃圾回收器调用,原因是如果把销毁对象的工作全部交给编程者通过调用析构函数完对象的工作全部交给编程者通过调用析构函数完成,而系统不自动实现销毁的功能,一旦编程者忘成,而系统不自动实现销毁的功能,一旦

6、编程者忘记销毁对象,就会引起内存泄漏问题。所以采用垃记销毁对象,就会引起内存泄漏问题。所以采用垃圾回收机制自动销毁不再使用的对象。圾回收机制自动销毁不再使用的对象。因此,我们编写程序时不需要定义析构函数,因此,我们编写程序时不需要定义析构函数,而是由系统自动定义,自动调用。而是由系统自动定义,自动调用。103.1.1 3.1.1 类的组织(续)类的组织(续)注意,虽然注意,虽然C#C#不允许在程序中直接调用析构函不允许在程序中直接调用析构函数销毁对象,但是可以调用安全的数销毁对象,但是可以调用安全的DisposeDispose方法销方法销毁对象,在对性能要求比较高的场合,调用毁对象,在对性能要

7、求比较高的场合,调用DisposeDispose方法直接销毁对象还是很有用的。方法直接销毁对象还是很有用的。垃圾回收机制是在它认为适当的时候自动回收垃圾回收机制是在它认为适当的时候自动回收不再使用的内存的,即检测没有被引用的对象,然不再使用的内存的,即检测没有被引用的对象,然后销毁之。后销毁之。销毁对象也是做了两个方面的工作:销毁对象也是做了两个方面的工作:(1)释放占用的内存;)释放占用的内存;(2)将分配给对象的内存归还给堆()将分配给对象的内存归还给堆(Heap)。)。113.1.1 3.1.1 类的组织(续)类的组织(续)3 3 字段和局部变量字段和局部变量 字段字段:指声明为类一级的

8、对象或值类型的变量。指声明为类一级的对象或值类型的变量。局部变量局部变量:指在方法、事件以及构造函数内声指在方法、事件以及构造函数内声明的变量。明的变量。public class Program public static int j=20;/字段字段 public static void Main()123.1.1 3.1.1 类的组织(续)类的组织(续)int j=30;/局部变量局部变量 Console.WriteLine(j);/输出结果:输出结果:30 Console.WriteLine(Program.j);/输出结果:输出结果:20 Console.ReadLine();13 当

9、字段和局部变量名相同时,如果要引用静当字段和局部变量名相同时,如果要引用静态字段,可以使用下面的形式:态字段,可以使用下面的形式:类名类名.字段名字段名 如果是实例字段,则使用下面的形式:如果是实例字段,则使用下面的形式:this.字段名字段名 这里的这里的this指当前实例。指当前实例。当然,如果没有出现字段和局部变量名重名的当然,如果没有出现字段和局部变量名重名的情况,引用字段的形式和引用局部变量的形式相同。情况,引用字段的形式和引用局部变量的形式相同。143.1.1 3.1.1 类的组织(续)类的组织(续)4.4.静态成员与实例成员静态成员与实例成员类的成员类的成员 类的成员包括字段、属

10、性、构造函数、方法、事件、类的成员包括字段、属性、构造函数、方法、事件、索引、嵌套类。索引、嵌套类。类的成员分静态成员和实例成员类的成员分静态成员和实例成员静态成员在内存中只有一份静态成员在内存中只有一份静态成员要等到应用程序结束时才会退出内静态成员要等到应用程序结束时才会退出内存。存。把只有创建了类的实例才能够使用的成员叫把只有创建了类的实例才能够使用的成员叫实例成员。实例成员。153.1.1 3.1.1 类的组织(续)类的组织(续)5.5.访问修饰符访问修饰符C#C#中有以下成员访问修饰符:中有以下成员访问修饰符:Public (常用)(常用)任何外部的类都可以不受限制的存任何外部的类都可

11、以不受限制的存取这个类的方法和数据成员。取这个类的方法和数据成员。private(常用)(常用)类中的所有方法和数据成员只能在类中的所有方法和数据成员只能在此类中使用,外部无法存取。此类中使用,外部无法存取。(默认默认)Protected 除了让本身的类可以使用之外,任何继承除了让本身的类可以使用之外,任何继承自此类的子类都可以存取。自此类的子类都可以存取。163.1.1 3.1.1 类的组织(续)类的组织(续)Internal 在当前项目中都可以存取。该访问权限一在当前项目中都可以存取。该访问权限一般用于基于组件的开发,因为它可以使组件以私有般用于基于组件的开发,因为它可以使组件以私有方式工

12、作,而该项目外的其它代码无法访问。方式工作,而该项目外的其它代码无法访问。Protected internal 只限于当前项目,或者从该项目只限于当前项目,或者从该项目的类继承的类才可以存取。的类继承的类才可以存取。Partial 局部类型,类的定义和实现可以分布在多个局部类型,类的定义和实现可以分布在多个文件中,但都要使用文件中,但都要使用partial标注,基类只需要声明标注,基类只需要声明一次,若多次声明则必须完全一致。一次,若多次声明则必须完全一致。173.1.2 3.1.2 构造函数构造函数 构造函数是一个特殊的方法,用于在建立对象时构造函数是一个特殊的方法,用于在建立对象时进行初始

13、化的动作,在进行初始化的动作,在C#中,每当创建一个对象中,每当创建一个对象时,都会先调用类中定义的构造函数。时,都会先调用类中定义的构造函数。使用构造函数的好处是它能够确保每一个对象在使用构造函数的好处是它能够确保每一个对象在被使用之前都适当地进行了初始化的动作。被使用之前都适当地进行了初始化的动作。18 另外,构造函数还具有以下特点:另外,构造函数还具有以下特点:1)每个类至少有一个构造函数。若程序代码每个类至少有一个构造函数。若程序代码中没有构造函数则系统会自动提供一个默认中没有构造函数则系统会自动提供一个默认的构造函数。的构造函数。2)一个构造函数总是和它的类名相同。一个构造函数总是和

14、它的类名相同。3)构造函数不包含任何返回值。构造函数不包含任何返回值。193.1.2 3.1.2 构造函数(续)构造函数(续)1.默认构造函数默认构造函数(1)如果在类中不定义构造函数,系统会提供一个)如果在类中不定义构造函数,系统会提供一个默认的构造函数。默认的构造函数。(2)默认构造函数没有参数。)默认构造函数没有参数。203.1.2 3.1.2 构造函数(续)构造函数(续)(3)默认构造函数自动将非静态成员初始化为:)默认构造函数自动将非静态成员初始化为:数值型数值型:如如int、double等,初始化为等,初始化为0。bool类型:初始化为类型:初始化为false.引用类型:初始化为引

15、用类型:初始化为null。(4)如果自己定义了构造函数,则不会自动进行初)如果自己定义了构造函数,则不会自动进行初始化。始化。213.1.2 3.1.2 构造函数(续)构造函数(续)2.重载构造函数重载构造函数 有时候可能会遇到这样的情况:在一个类中的有时候可能会遇到这样的情况:在一个类中的多个方法中都要用到某一个数据成员,而该成员多个方法中都要用到某一个数据成员,而该成员值必须从其他类中传递过来。这时,无参数的构值必须从其他类中传递过来。这时,无参数的构造函数就不能胜任了,解决这个问题最好的办法造函数就不能胜任了,解决这个问题最好的办法就是:重载(就是:重载(Overloading)构造函数

16、。)构造函数。223.1.2 3.1.2 构造函数(续)构造函数(续)using System;using System.Collections.Generic;using System.Text;namespace OverloadingExample class Program public Program()Console.WriteLine(null);233.1.2 3.1.2 构造函数(续)构造函数(续)public Program(string str)Console.WriteLine(str);static void Main()Program aa=new Program(

17、);Program bb=new Program(How are you!);Console.ReadLine();243.1.3 3.1.3 方法方法 方方法法(Method)是是一一组组程程序序代代码码的的集集合合,每每个个方方法法都都有有一一个个方方法法名名,便便于于识识别别和和让让其其他他方方法法调调用。用。1.方法的定义与使用方法的定义与使用 (1 1)方法必须放在某个类中。)方法必须放在某个类中。(2 2)定义方法的语法形式为:)定义方法的语法形式为:访问修饰符访问修饰符 返回值类型返回值类型 方法名称(参数序列)方法名称(参数序列)语句序列语句序列 253.1.3 3.1.3 方

18、法(续)方法(续)定义方法时,需要注意以下几点定义方法时,需要注意以下几点:方法名不能和变量、常数或者任何声明在类中方法名不能和变量、常数或者任何声明在类中其它的成员相同。其它的成员相同。方法可以有参数,也可以没有参数,但是不论方法可以有参数,也可以没有参数,但是不论是否有参数,小括号都是必需的。如果参数序列中是否有参数,小括号都是必需的。如果参数序列中的参数有多个,则以逗号分开。的参数有多个,则以逗号分开。结束某个方法的执行,可以使用结束某个方法的执行,可以使用returnreturn语句,语句,程序遇到程序遇到returnreturn语句后,会将执行流程交还给调用语句后,会将执行流程交还给

19、调用此方法的程序代码段。此外,还可以用此方法的程序代码段。此外,还可以用returnreturn语句语句返回一个值。返回一个值。263.1.3 3.1.3 方法(续)方法(续)如果声明一个非如果声明一个非voidvoid类型的方法,则方法中类型的方法,则方法中必须至少有一个必须至少有一个returnreturn语句。语句。using System;using System.Collections.Generic;using System.Text;namespace MethodExample class Program public int MyMethod()273.1.3 3.1.3 方

20、法(续)方法(续)Console.WriteLine(this is MyMethod.);int i=10;return i;static void Main()Program method=new Program();int j=5;j=method.MyMethod();283.1.3 3.1.3 方法(续)方法(续)Console.WriteLine(the value is 0.,j);Console.ReadLine();293.1.3 3.1.3 方法(续)方法(续)2.方法中的参数传递方法中的参数传递1)传递值类型的参数传递值类型的参数 值类型参数的格式为:值类型参数的格式为:

21、参数类型参数类型 参数名参数名using System;using System.Collections.Generic;using System.Text;namespace ValueTransferExample class Program public static void AddOne(int a)a+;303.1.3 3.1.3 方法(续)方法(续)static void Main()int a=3;Console.WriteLine(调用调用AddOne之前,之前,a=0,a);AddOne(a);Console.WriteLine(调用调用AddOne之后,之后,a=0,a)

22、;Console.ReadLine();313.1.3 3.1.3 方法(续)方法(续)2)传递引用类型的参数传递引用类型的参数引用类型参数的格式为:引用类型参数的格式为:ref 参数类型参数类型 参数名参数名using System;using System.Collections.Generic;using System.Text;namespace ReferenceTransferExample class Program public static void AddOne(ref int a)323.1.3 3.1.3 方法(续)方法(续)a+;static void Main()i

23、nt x=3;Console.WriteLine(调用调用AddOne之前,之前,x=0,x);AddOne(ref x);Console.WriteLine(调用调用AddOne之后,之后,x=0,x);Console.ReadLine();333.1.3 3.1.3 方法(续)方法(续)3)输出多个引用类型的参数输出多个引用类型的参数 输出引用类型参数的格式为:输出引用类型参数的格式为:out 参数类型参数类型 参数名参数名using System;using System.Collections.Generic;using System.Text;namespace ReferenceO

24、utExample class Program public static void MyMethod(out int a,out int b)343.1.3 3.1.3 方法(续)方法(续)a=5;b=6;static void Main()int x,y;MyMethod(out x,out y);Console.WriteLine(调用调用MyMethod之后,之后,x=0,y=1,x,y);Console.ReadLine();353.1.3 3.1.3 方法(续)方法(续)4)传递个数不确定的参数传递个数不确定的参数 需要传递的参数个数不确定时,可以采用需要传递的参数个数不确定时,可

25、以采用params关键关键字。字。using System;using System.Collections.Generic;using System.Text;namespace UncertaintyTransferExample class Program public static float Average(params long v)long total,i;363.1.3 3.1.3 方法(续)方法(续)for(i=0,total=0;i 0)423.1.4 3.1.4 属性(续)属性(续)number=value;/value是关键字,其值由编译器自动生是关键字,其值由编译器自

26、动生成。成。public class Program public static void Main()MyClass me=new MyClass();433.1.4 3.1.4 属性(续)属性(续)Console.WriteLine(me.MyNumber);me.MyNumber=5;Console.WriteLine(me.MyNumber);Console.ReadLine();443.1.4 3.1.4 属性(续)属性(续)2.属性与方法的区别属性与方法的区别 属性和方法的区别主要有:属性和方法的区别主要有:1)属性不必使用括号,但方法一定要使用括属性不必使用括号,但方法一定要使用

27、括号。号。2)属性不能指定参数,方法可以指定参数。属性不能指定参数,方法可以指定参数。3)属性不能使用属性不能使用void类型,方法则可以使用类型,方法则可以使用void类型。类型。453.1.5 3.1.5 事件事件事件事件:是指当对象发生某些事情时,向其他对象提是指当对象发生某些事情时,向其他对象提供通知的一种方法。供通知的一种方法。两种角色:两种角色:1)一个是事件发送方一个是事件发送方 2)一个是事件接收方一个是事件接收方 用途:用途:事件最常见的用途是用于图形用户界面事件最常见的用途是用于图形用户界面。463.2 3.2 常用类操作和数据处理常用类操作和数据处理 Visual Stu

28、dio 2005开发环境提供了实现各种功能开发环境提供了实现各种功能的丰富的类,其中有些类是实际编程中经常用到的,的丰富的类,其中有些类是实际编程中经常用到的,这一节只选取了其中的几种,并通过一些具体例子简这一节只选取了其中的几种,并通过一些具体例子简单说明了使用方法,希望能起到抛砖引玉的作用。单说明了使用方法,希望能起到抛砖引玉的作用。473.2.1 Convert3.2.1 Convert类类 Convert类位于类位于System命名空间下,用于将一个命名空间下,用于将一个值类型转换为另一个值类型。值类型转换为另一个值类型。using System;using System.Collec

29、tions.Generic;using System.Text;namespace ConvertClassExample class Program public static void Main()483.2.1 Convert3.2.1 Convert类(续)类(续)double d1=23.5D,d2=23.4D;int i1=Convert.ToInt32(d1);int i2=Convert.ToInt32(d2);Console.WriteLine(0,1,i1,i2);int i=0;bool b1=Convert.ToBoolean(d1);bool b2=Convert.T

30、oBoolean(i);Console.WriteLine(0,1,b1,b2);string s=123;493.2.1 Convert3.2.1 Convert类(续)类(续)i=Convert.ToInt32(s);Console.WriteLine(0,1,s,i);Console.ReadLine();输出结果:输出结果:24,23True,False123,123503.2.2 String3.2.2 String类(续)类(续)字符串类分为两种字符串类分为两种:String类和类和StringBuilder类类String类的表示方法类的表示方法:string str=C:tes

31、tfirst.cs string str=C:testfirst.cs 取字符串中的某个字符的方法取字符串中的某个字符的方法:string myString=some text;char chFirst=myString2;/结果为结果为m513.2.2 String3.2.2 String类(续)类(续)注意注意:string myString=some text;myString+=and a bit more;其实际操作并不是在原来其实际操作并不是在原来myString所占内存空所占内存空间的后面直接附加上第二个字串间的后面直接附加上第二个字串,而是返回一个新而是返回一个新String实

32、例,即重新为新字符串分配内存空间。实例,即重新为新字符串分配内存空间。523.2.2 String3.2.2 String类(续)类(续)1.字符串的表示格式字符串的表示格式 可以使用可以使用Format方法将字符串表示为规定格式。方法将字符串表示为规定格式。规定格式的一般形式为:规定格式的一般形式为:N,M:格式码格式码 其中:其中:表示其中的内容为可选项。表示其中的内容为可选项。N:从零开始的整数,表示第几个参数。:从零开始的整数,表示第几个参数。M:可选整数,表示最小宽度。若该参数的长度小于:可选整数,表示最小宽度。若该参数的长度小于M,就用空格填充。如果,就用空格填充。如果M为负,则左

33、对齐;如果为负,则左对齐;如果M为正,则右对齐。如果未指定为正,则右对齐。如果未指定M,则默认为零。,则默认为零。533.2.2 String3.2.2 String类(续)类(续)格式码格式码是可选的格式化代码字符串。(详细内容是可选的格式化代码字符串。(详细内容请搜索请搜索“格式化字符串格式化字符串”查看)查看)必须用必须用“”“”和和“”“”将格式与其他字符分开。如将格式与其他字符分开。如果恰好在格式中也要使用大括号,可以用连续的两果恰好在格式中也要使用大括号,可以用连续的两个大括号表示一个大括号,即:个大括号表示一个大括号,即:“”“”或者或者“”“”。543.2.2 String3.

34、2.2 String类(续)类(续)常用格式举例:常用格式举例:1)在在ToString中使用中使用d格式。格式。int i=12345;/i.ToString(d)表示将表示将i按照实际整数宽度转换为字符串按照实际整数宽度转换为字符串string str=i.ToString(d);Console.WriteLine(str);/结果结果12345/i.ToString(d8)表示将表示将i转换为字符串,宽度为转换为字符串,宽度为8位,不位,不够够8位左边用位左边用0填充填充string str1=i.ToString(d8);Console.WriteLine(str1);/结果结果000

35、12345553.2.2 String3.2.2 String类(续)类(续)2)在在string.Format中使用中使用d格式。格式。int i=123;double j=123.45;/0,7:d表示第表示第0个参数,宽度个参数,宽度7位,不够位,不够7位左边用空格填位左边用空格填充,充,d表示十进制整数表示十进制整数string s1=string.Format(the value is 0,7:d,i);Console.WriteLine(s1);/结果结果 the value is 123/0,7:f3表示第表示第0个参数个参数,总宽度总宽度7位位,其中小数部分占其中小数部分占3位

36、位,不不够够7位左边填空格位左边填空格/f表示浮点数表示浮点数string s2=string.Format(the value is 0,7:f3,j);Console.WriteLine(s2);/结果结果 the value is 123.450563.2.2 String3.2.2 String类(续)类(续)3)在在ToString中使用中使用f格式。格式。double i=12345.6789;/f2表示浮点数小数部分为表示浮点数小数部分为2位,多余部分四舍五入,不够位,多余部分四舍五入,不够2位时右边补零位时右边补零string str=i.ToString(f2);Consol

37、e.WriteLine(str);/结果结果 12345.68string str1=i.ToString(f6);Console.WriteLine(str1);/结果结果 12345.678900573.2.2 String3.2.2 String类(续)类(续)4)在在ToString中使用中使用n格式。格式。double i=12345.6789;/n表示整数部分从小数点向左每表示整数部分从小数点向左每3位用逗号分隔开,小数位用逗号分隔开,小数部分部分2位,多余部分四舍五入位,多余部分四舍五入string str=i.ToString(n);Console.WriteLine(str)

38、;/结果结果 12,345.68/n4表示整数部分从小数点向左每表示整数部分从小数点向左每3位用逗号分隔开,小数位用逗号分隔开,小数部分部分4位,多余部分四舍五入位,多余部分四舍五入string str1=i.ToString(n4);Console.WriteLine(str1);/结果结果 12,345.6789583.2.2 String3.2.2 String类(续)类(续)5)在在ToString中使用中使用p格式。格式。double i=0.126;/p表示百分数形式表示百分数形式string s=string.Format(the value is 0:p,i);Console.

39、WriteLine(s);/结果结果 the value is 12.60%string str=i.ToString(p);Console.WriteLine(str);/结果结果 12.60%593.2.2 String3.2.2 String类(续)类(续)6)日期与时间的格式化表示。日期与时间的格式化表示。DateTime dt=new DateTime(2006,5,25);/yy表示年占两位,表示年占两位,M表示月占表示月占1位,超出位,超出1位按实际位数位按实际位数/d表示日占表示日占1位,超出位,超出1位按实际位数位按实际位数string str=dt.ToString(yy.

40、M.d);Console.WriteLine(str);/结果结果 06.5.25/yyyy表示年占表示年占4位,位,M表示月占表示月占1位,超出位,超出1位按实际位数,位按实际位数,其他按原字符输出其他按原字符输出string str1=dt.ToString(yyyy年年M月月);Console.WriteLine(str1);/结果结果 2006年年5月月603.2.2 String3.2.2 String类(续)类(续)7)指定位数和对齐方式。指定位数和对齐方式。int i=123;double j=123.45;/0,-7表示第表示第0个参数左对齐,占个参数左对齐,占7位,不够位,不

41、够7位右边补空位右边补空格。格。/1,7表示第表示第1个参数右对齐,占个参数右对齐,占7位,不够位,不够7位左边补空格。位左边补空格。string s=string.Format(i:0,-7,j:1,7,i,j);Console.WriteLine(s);/结果结果i:123 ,j:123.45613.2.2 String3.2.2 String类(续)类(续)8)使用占位符表示。使用占位符表示。int i=00012;string str=string.Format(0:#,#.00,i);Console.WriteLine(str);/结果结果12.00i=0;str=string.Fo

42、rmat(0:#,i);Console.WriteLine(str);/结果什么都不输出结果什么都不输出623.2.2 String3.2.2 String类(续)类(续)2.常用字符串操作方法常用字符串操作方法 举例说明常用的一些方法。举例说明常用的一些方法。生成字符串生成字符串string str1=this is a string.;string str2=str1;string str3=new string(a,4);Console.WriteLine(str3);/结果为结果为aaaa查找指定字符串在字符串中出现的位置查找指定字符串在字符串中出现的位置IndexOf(string

43、str)LastIndexOf(string str)633.2.2 String3.2.2 String类(续)类(续)例如例如:Console.WriteLine(str1.IndexOf(is);/结果结果为为2(注意序号从注意序号从0开始开始)Console.WriteLine(str1.LastIndexOf(is);/结结果为果为5删除指定数量的字符删除指定数量的字符Remove(int startIndex,int count)例如例如:string str1=this is a string.“Console.WriteLine(str1.Remove(1,2);/结果为结果为

44、ts is a string 643.2.2 String3.2.2 String类(续)类(续)字符串替换字符串替换 Replace(string oldStr,string newStr)例如例如:string str1=this is a string.“Console.WriteLine(str1.Replace(is,xy);/结果为结果为thxy xy a string 分离字符串分离字符串 Split(char separator)例如例如:string str1=this is a string.“653.2.2 String3.2.2 String类(续)类(续)string

45、 str=str1.Split(.);for(int i=0;i str.Length;i+)Console.WriteLine(stri);输出结果输出结果:this is a string 663.2.2 String3.2.2 String类(续)类(续)把字符串中的字符复制到一个字符数组中把字符串中的字符复制到一个字符数组中 利用利用ToCharArray可以将字符串转换为字符数可以将字符串转换为字符数组。组。字符串中字母的大小写转换字符串中字母的大小写转换 利利用用ToUpper可可以以将将字字符符串串的的所所有有英英文文字字母母转转换换为为大大写写,利利用用ToLower可可以以将

46、将字字符符串串的的所所有有英英文文字母转换为小写。字母转换为小写。从字符串开头或结尾删除指定的字符从字符串开头或结尾删除指定的字符 利利用用TrimStart删删除除字字符符串串首首部部空空格格,利利用用TrimEnd删删除除字字符符串串尾尾部部空空格格,利利用用Trim删删除除字字符符串首部和尾部空格。串首部和尾部空格。673.2.2 String3.2.2 String类(续)类(续)例如例如:string s1=this is a book;string s2=that is a pen;string s3=is a pen;Console.WriteLine(s1.TrimStart(

47、);/删除首部空格删除首部空格Console.WriteLine(s2.TrimEnd();/删除尾部空格删除尾部空格Console.WriteLine(s3.Trim();/删除首部和尾部空格删除首部和尾部空格填充字符到字符串中使总长度等于指定长度填充字符到字符串中使总长度等于指定长度 PadLeft(总长度(总长度,字符)字符)683.2.2 String3.2.2 String类(续)类(续)PadRight(总长度(总长度,字符)字符)例如例如:string str=a;string str1=str.PadLeft(5,e);Console.WriteLine(str1);/结果为结

48、果为eeeeastring str2=str.PadRight(5,e);Console.WriteLine(str2);/结果为结果为aeeee693.2.3 StringBuilder3.2.3 StringBuilder类类 StringBuilder类位于类位于System.Text名称空间下,名称空间下,使用使用StringBuilder类每次重新生成新字符串时不类每次重新生成新字符串时不是再生成一个新实例,而是直接在原来字符串占是再生成一个新实例,而是直接在原来字符串占用的内存空间上进行处理,而且它可以动态的分用的内存空间上进行处理,而且它可以动态的分配占用的内存空间大小。因此,在

49、字符串处理操配占用的内存空间大小。因此,在字符串处理操作比较多的情况下,使用作比较多的情况下,使用StringBuilder类可以大类可以大大提高系统的性能。大提高系统的性能。703.2.4 DataTime类和类和TimeSpan类类 DateTime类可以表示范围在类可以表示范围在00010001年年1 1月月1 1日午夜日午夜 12:00:0012:00:00到到 9999 9999年年1212月月3131日晚上日晚上11:59:5911:59:59之间的日之间的日期和时间,最小时间单位等于期和时间,最小时间单位等于100100毫微秒。毫微秒。TimeSpan类可以表示一个时间间隔。其范

50、围可类可以表示一个时间间隔。其范围可 以在以在 Int64.MinValue 到到 Int64.MaxValue之间。之间。713.2.5 Math3.2.5 Math类类 Math类位于类位于System命名空间下,为三角函数、命名空间下,为三角函数、对数函数和其他通用数学函数提供常数和静态方法。对数函数和其他通用数学函数提供常数和静态方法。例如:例如:int i=10,j=-5;double x=1.3,y=2.7;double a=2.0,b=5.0;Console.WriteLine(string.Format(-5的绝对值的绝对值为为0,Math.Abs(j);Console.Wri

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

当前位置:首页 > pptx模板 > 企业培训

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁