C#第3章常量、变量与方法3H.ppt
高级编程技术高级编程技术Visual C#.NET Programming聊城大学聊城大学 理工学院理工学院曹银杰曹银杰第三章第三章常量、变量与方法常量、变量与方法F3.1 3.1 数据类型数据类型 F3.2 3.2 常量常量F3.3 3.3 变量变量F3.4 3.4 复杂的变量类型复杂的变量类型F3.5方法方法F3.6数据类型转换数据类型转换3.1 3.1 数据类型数据类型F数数据据是是程程序序处处理理的的对对象象。不不同同数数据据类类型型其其存存储储形形式式、取取值值范范围围、所所能能进进行行的的运运算算是是不不同同的的。把把数数据据分分成成不不同同数数据据类类型可提高计算机存储、运算效率。型可提高计算机存储、运算效率。FC#C#中中数数据据类类型型就就是是类类,由由其其声声明明的的常常量量、变变量量就就是是类类的的对对象。所以声明的数据就有了属性、方法和事件成员。象。所以声明的数据就有了属性、方法和事件成员。F本节内容:本节内容:1 1、C#C#两种数据类型两种数据类型2 2、C#C#数据类型与数据类型与数据类型的对应数据类型的对应3 3、数据类型使用举例、数据类型使用举例1、C#两种数据类型两种数据类型C#C#中的数据类型分为两个基本类别中的数据类型分为两个基本类别 F值类型值类型 -表示实际数据表示实际数据 -只是将值存放在内存中只是将值存放在内存中 -值类型都存储在堆栈中值类型都存储在堆栈中 -如如intint、charchar、结构类型、结构类型-对一个变量的操作不影响另一个变量对一个变量的操作不影响另一个变量F引用类型引用类型 -表示指向数据的指针或引用表示指向数据的指针或引用 -包含内存堆中对象的地址包含内存堆中对象的地址 -为为 nullnull,则表示未引用任何对象,则表示未引用任何对象 -如类、接口、数组、字符串类型如类、接口、数组、字符串类型-对于引用类型,两个变量可能引用同一个对象,因此对于引用类型,两个变量可能引用同一个对象,因此对一个变量的操作可能影响另一个变量所引用的对象对一个变量的操作可能影响另一个变量所引用的对象C#两种数据类型两种数据类型delegateD(.)形式的用形式的用户户定定义义的的类类型型委托委托类类型型一一维维和多和多维维数数组组,例如,例如int和和int,数数组类组类型型stringUnicode字符串字符串interfaceI.形式的用形式的用户户定定义义的的类类型型接口接口类类型型classC.形式的用形式的用户户定定义义的的类类型型所有其他所有其他类类型的最型的最终终基基类类:object类类类类型型引引用用类类型型structS.形式的用形式的用户户定定义义的的类类型型结结构构类类型型enumE.形式的用形式的用户户定定义义的的类类型型枚枚举类举类型型布布尔尔型:型:bool28位高精度十位高精度十进进制小数:制小数:decimalIEEE浮点型:浮点型:float,doubleUnicode字符:字符:char无符号整型:无符号整型:byte,ushort,uint,ulong有符号整型:有符号整型:sbyte,short,int,long简单简单数据数据类类型型U-unsignedS-signed值值类类型型说 明类 别整 型浮点型2、C#C#数据类型与数据类型与数据类型的对应数据类型的对应F.NET.NET的的CTS(CTS(公共类型系统公共类型系统)规定了类型必须如何定义才能被规定了类型必须如何定义才能被CLRCLR承载承载,包括包括(Class)(Class)类、类、(interface)(interface)接口、接口、(structure)(structure)结构、结构、(enumeration)(enumeration)枚举、枚举、(delegate)(delegate)委托。委托。FC#C#的数据类型没有内置于语言中,而是内置于的数据类型没有内置于语言中,而是内置于.NET.NET中中,C#,C#支支持的持的1313个预定义值类型与个预定义值类型与CTSCTS数据类型对应:数据类型对应:C#C#类型类型CTS类型类型允允 许许 的的 值值sbyteSystem.SByte在在 -128 127 之间的整数之间的整数byteSystem.Byte在在 0 255 之间的整数之间的整数shortSystem.Int16在在 -32768 32767 之间的整数之间的整数ushortSystem.UInt16在在 0 65535 之间的整数之间的整数intSystem.Int32在在 -2147483648 2146483647 之间的整数之间的整数uintSystem.UInt32在在 0 4294967295 之间的整数之间的整数longSystem.Int64在在 -92233720368547758089223372036854775807 之间的整数之间的整数ulongSystem.UInt64在在 0 18446744073709551615 之间的整数之间的整数C#数据类型与数据类型与CTS类型对应类型对应C#类型类型CTS类类型型允允 许许 的的 值值floatSystem.Single1.510-453.41038 之间的浮点数之间的浮点数doubleSystem.Double5.010-3241.710308 之间的浮点数之间的浮点数decimalSystem.Decimal1.010-287.91028 之间的浮点数之间的浮点数boolSystem.Boolean布尔值,布尔值,true 或或 falsecharSystem.Char一个一个 Unicode 字符,存储字符,存储 065535 之间的之间的整数整数C#类型类型CTS CTS 类型类型说说明明objectobjectSystem.ObjectSystem.Object根类型,根类型,CTSCTS中的其他类型都是从它派生而中的其他类型都是从它派生而来的来的(包括值类型包括值类型)stringstringSystem.StringSystem.StringUnicodeUnicode字符串字符串FC#支持两个预定义的引用类型3、数据类型使用举例、数据类型使用举例F数值类型:数值类型:int theInteger=10;int theInteger=10;double theDouble=3.14159;double theDouble=3.14159;Fboolbool类型:只有类型:只有 truetrue 和和 falsefalse 值,值,C#C#中中boolbool值和整数值和整数值之间不能相互转换。值之间不能相互转换。bool theLogic=true;bool theLogic=true;Fchar char 型变量存储的是以型变量存储的是以 Unicode(Unicode(表示多个国家的国际字表示多个国家的国际字符集符集)方式编码的字符,占用两个字节,可表示方式编码的字符,占用两个字节,可表示 65536 65536 种种不同的字符,可以直接在一个不同的字符,可以直接在一个 char char 型变量中存储一个汉型变量中存储一个汉字的编码。用字的编码。用单引号单引号围起来,例:围起来,例:char theChar=c;char theChar=c;char ChineseCharacters =char ChineseCharacters =字字;数据类型使用举例数据类型使用举例Fstringstring类型:是类型:是UnicodeUnicode字符串,是一个引用类型。字符串,是一个引用类型。把一个字符串赋给另一个字符串时,就会得到对同一把一个字符串赋给另一个字符串时,就会得到对同一内存空间内字符串的两个引用。内存空间内字符串的两个引用。修改一个字符串,就是创建一个全新的修改一个字符串,就是创建一个全新的stringstring对象。对象。F转义序列符号转义序列符号“”“”应用:单引号应用:单引号、双引号、双引号 “、反斜杠、反斜杠、警告、警告aa、换行、换行nn、回、回车车rr、水平制表符、水平制表符 t t。F转义序列符号转义序列符号“”“”:在字符串前加上:在字符串前加上,该字符串所有字,该字符串所有字符都被看作原来的含义。符都被看作原来的含义。F例:例:string theString=“the string!”;string theString=“the string!”;string path=“c:abc.txt”;string path=“c:abc.txt”;等价下一句等价下一句string path=“c:abc.txt”;string path=“c:abc.txt”;3.2 常量F常量就是在程序运行过程中其值不改变的量。类和结构可常量就是在程序运行过程中其值不改变的量。类和结构可以将常数声明为成员。以将常数声明为成员。FC#C#常量的数据类型有多种如:常量的数据类型有多种如:sbytesbyte、bytebyte、shortshort、ushortushort、intint、uintuint、longlong、ulongulong、charchar、floatfloat、doubledouble、decimaldecimal、boolbool、stringstring等等。等等。F常量分为直接常量、符号常量、固有常量:常量分为直接常量、符号常量、固有常量:1 1、直接常量:程序中直接使用的数据常量。、直接常量:程序中直接使用的数据常量。2 2、命名常量:用一个自定义的符号名来代替数据常量。、命名常量:用一个自定义的符号名来代替数据常量。3 3、固有常量:、固有常量:提供的常量,如提供的常量,如:Color.Red:Color.Red。4 4、命名规则与命名约定、命名规则与命名约定1、直接常量F直接常量是直接以值的形式表示的常量值,通常在值后直接常量是直接以值的形式表示的常量值,通常在值后加上后缀以说明值的数据类型。例:加上后缀以说明值的数据类型。例:2、命名常量F命名常量用关键字命名常量用关键字constconst声明并初始化,语法:声明并初始化,语法:修饰符修饰符 const const 数据类型符数据类型符 常量名常量名=常量表达式常量表达式;常量名要符合命名规则与命名约定;常量名要符合命名规则与命名约定;修饰符:修饰符:public、privateprivate。F例:例:public const int A=1,B=3;public const int A=1,B=3;F一一个个常常量量可可以以依依赖赖于于另另一一个个命命名名常常量量,但但不不能能形形成成循循环依赖,例:环依赖,例:class ConstExampleclass ConstExample public const int A=1;public const int A=1;public const int B=A+2;public const int B=A+2;/如果上面如果上面A=B+1 A=B+1 形成了循环依赖就会出错形成了循环依赖就会出错 3 3、固有常量、固有常量FSystem-definedconstants系统定义的常量系统定义的常量,Declaredinsystemclasslibraries在系统类库中声明在系统类库中声明。FSpecifyclassnameorgroupnameandconstantname指定指定常量名及其所在的类名或组名常量名及其所在的类名或组名,Example:Color.Redistheconstant“Red”intheclass“Color”,Color.Red是是Color类中的类中的Red常量常量;Color.BlueColor.Blue、Color.YellowColor.Yellow等等4 4、命名规则与命名约定、命名规则与命名约定F常量、变量命名规则:常量、变量命名规则:名称的第一个字符必须是字母、下划线名称的第一个字符必须是字母、下划线”_”_”或或”,其后的字符可以是字母、下划线或数字其后的字符可以是字母、下划线或数字;名称中不能包含空格、句点等标点符号;名称中不能包含空格、句点等标点符号;名称不可以和关键字(保留字)同名名称不可以和关键字(保留字)同名;区分大小写。区分大小写。F常量、变量命名约定:常量、变量命名约定:名称要有意义,最好不使用缩写;名称要有意义,最好不使用缩写;名称中包括数据类型;名称中包括数据类型;变量名称以小写字母开始,然后每个后继单词的首字母变量名称以小写字母开始,然后每个后继单词的首字母大写。大写。常量使用大写的名称。常量使用大写的名称。3.3变量变量F变量是指在程序运行过程中其值可以发生变化的量。变量是指在程序运行过程中其值可以发生变化的量。1、变量的声明、变量的声明2、变量的作用域和生存期、变量的作用域和生存期1、变量的声明、变量的声明F声明变量语法如下:声明变量语法如下:修饰符修饰符 数据类型符数据类型符 变量名变量名1=1=初值初值1,1,变量名变量名2=2=初值初值2,;2,;类级变量使用修饰符:类级变量使用修饰符:public public、privateprivate、static static。变量在使用之前必须初始化变量在使用之前必须初始化(赋初值赋初值),否则将不能通,否则将不能通过编译。过编译。F合法命名:合法命名:myBigVarmyBigVar,Var1 Var1,_test _test,myVar myVarF非法命名:非法命名:99BottleOfBeer99BottleOfBeer,switch switch,Its-All-OverIts-All-Over2、变量的作用域和生存期、变量的作用域和生存期F变量的生存期:变量可以在某特定的时刻被创建,或在不变量的生存期:变量可以在某特定的时刻被创建,或在不再需要时被删除。在创建和删除之间所经过的时间,被称再需要时被删除。在创建和删除之间所经过的时间,被称为变量的生存期。为变量的生存期。F变量的作用域:是指可以使用该变量的代码区域。变量的作用域:是指可以使用该变量的代码区域。与声明与声明位置有关,有命名空间级、类级、局部、块级。位置有关,有命名空间级、类级、局部、块级。F命名空间级变量(和常量):命名空间级变量(和常量):在本命名空间(一般是整个在本命名空间(一般是整个工程)的所有方法中使用,但良好的编程惯例不使用。工程)的所有方法中使用,但良好的编程惯例不使用。变量的作用域和生存期变量的作用域和生存期F类级变量:类级变量:声明位置在窗体或类的顶部声明,用修饰符声明位置在窗体或类的顶部声明,用修饰符publicpublic、privateprivate声明,在该窗体或其他类的所有方法中声明,在该窗体或其他类的所有方法中使用;实例对象时分配空间,所在的对象被撤消了,该变使用;实例对象时分配空间,所在的对象被撤消了,该变量也就从内存中被清除了。量也就从内存中被清除了。private static int abcd;F静态变量:在类中使用静态变量:在类中使用staticstatic关键字声明的变量。在第一次关键字声明的变量。在第一次实例对象时分配空间,对象被实例对象时分配空间,对象被撤消时,静态变量仍然在内存撤消时,静态变量仍然在内存中保存,下次再用时以此为初中保存,下次再用时以此为初值。值。变量的作用域和生存期变量的作用域和生存期F局部变量:局部变量:声明位置在窗体或类所包含的方法内位置声明声明位置在窗体或类所包含的方法内位置声明(第一次使用变量之前),只能该方法内使用。不能使用(第一次使用变量之前),只能该方法内使用。不能使用修饰符修饰符public、privateprivate与与staticstatic。F块级变量:块级变量:声明位置在语句块(大括号范围内)内(第一声明位置在语句块(大括号范围内)内(第一次使用变量之前),只能该语句快内使用。如在次使用变量之前),只能该语句快内使用。如在for、while循环中声明的变量,只存在于该循环体。不能使用循环中声明的变量,只存在于该循环体。不能使用修饰符修饰符public、privateprivate与与staticstatic。3.4复杂的变量类型复杂的变量类型F复杂的变量类型:复杂的变量类型:1 1、枚举、枚举enumenum2 2、结构、结构struct struct 3 3、数组、数组1、枚举枚举F枚举变量是指将变量可能的取值一一列举出来,变量的枚举变量是指将变量可能的取值一一列举出来,变量的值只限于枚举值之一。值只限于枚举值之一。F枚举用枚举用enumenum关键字来定义,语法如下:关键字来定义,语法如下:enum typeNameenum typeName value1,value1,value2,value2,value3,value3,F默认情况下,枚举类型中的每一个值是默认情况下,枚举类型中的每一个值是intint类型值。枚举类型值。枚举类型中的值还可以是类型中的值还可以是bytebyte,sbytesbyte,shortshort,ushortushort,uintuint,longlong和和ulongulong数据类型。数据类型。F默认情况下,从默认情况下,从0 0开始自动赋值;可使用开始自动赋值;可使用“=”“=”运算符来运算符来可以改变枚举元素的值。可以改变枚举元素的值。枚举F枚举是一个用户定义的数据类型,使用时需再声明这个枚枚举是一个用户定义的数据类型,使用时需再声明这个枚举类型的变量。语法如下:举类型的变量。语法如下:typeName varName;typeName varName;F枚举变量赋值:枚举变量赋值:varName=typeName.value2;varName=typeName.value2;2、结构F结构是由几个不同类型的数据组成一种新的数据类型,结结构是由几个不同类型的数据组成一种新的数据类型,结构体用关键字构体用关键字structstruct来定义,语法如下:来定义,语法如下:struct struct F包含变量包含变量结构数据成员的声明,结构数据成员的声明,每个成员的声明采用如下格式:每个成员的声明采用如下格式:;F例:例:struct routestruct route public orientation direction;public orientation direction;public double distance public double distance;结构F定义了结构类型之后,就可以定义该数据类型的变量:定义了结构类型之后,就可以定义该数据类型的变量:route myRoute;route myRoute;F通过通过“.”“.”成员运算符可以访问该变量的数据成员,例:成员运算符可以访问该变量的数据成员,例:myRoute.direction=orientation.north;myRoute.direction=orientation.north;myRoute.distance=2.5;myRoute.distance=2.5;3、数组变量变量F数组是同一数据类型的一组值的集合。数组属于引用类型,数组是同一数据类型的一组值的集合。数组属于引用类型,连续存放在堆内存中,这些变量均具有相同的名称、相同连续存放在堆内存中,这些变量均具有相同的名称、相同的数据类型,可以通过下标相互区分,每一个这样的变量的数据类型,可以通过下标相互区分,每一个这样的变量我们把它称为数组元素。为数据处理带来很大方便。我们把它称为数组元素。为数据处理带来很大方便。F本节分别介绍:本节分别介绍:一维数组一维数组多维数组多维数组数组的数组数组的数组一维数组一维数组F一维数组只有一个下标的数组。数组使用前必须先声明和分配空间。一维数组只有一个下标的数组。数组使用前必须先声明和分配空间。F一维数组的声明:一维数组的声明:数据类型数据类型 元素个数元素个数n n 数组名称数组名称;数组名称与普通变量命名相同;数组名称与普通变量命名相同;元素个数元素个数n n可省略,就是没指定数组大小;可省略,就是没指定数组大小;第一个数组元素下标第一个数组元素下标0 0,一直到第,一直到第n-1n-1元素,共元素,共n n个。个。例:例:string namesstring names;string10 names string10 names;/从从0 0到到9 9共共1010个元素。个元素。F一维数组的声明并初始化,也可不使用关键字一维数组的声明并初始化,也可不使用关键字newnew初始化,初始化,下列都是合法形式:下列都是合法形式:string weekDays=new string Sun,Mon,Tue,Wed,string weekDays=new string Sun,Mon,Tue,Wed,Thu,Fri,Sat;Thu,Fri,Sat;int array1=new int5 1,2,3,4,5int array1=new int5 1,2,3,4,5;/or;/or:int array2=new int 1,2,3,4,5int array2=new int 1,2,3,4,5;/or;/orint array3=1,2,3,4,5int array3=1,2,3,4,5;一维数组一维数组F使用数组前必须初始化(赋值),可以先声明后初始化:使用数组前必须初始化(赋值),可以先声明后初始化:int array4;int array4;array4=new int 1,2,3,4,5;/OKarray4=new int 1,2,3,4,5;/OK/a/array4=new int5 1,2,3,4,5;/OKrray4=new int5 1,2,3,4,5;/OK/array4=1,2,3,4,5;/array4=1,2,3,4,5;/错误初始化形式错误初始化形式F引用一维数组元素的形式:引用一维数组元素的形式:数组名数组名 下标下标;与普通变量一与普通变量一样使用。样使用。F例:例:int array1=new int5 1,2,3,4,5;int array1=new int5 1,2,3,4,5;那么那么array1array1数组具有元素:数组具有元素:array10array10值为值为1 1,array12 array12值为值为2 2,.array14.array14值为值为5 5。多维数组多维数组F多维数组具有多个下标,多维数组中常用的是二维数组。多维数组具有多个下标,多维数组中常用的是二维数组。F声明、引用于一维数组类似。声明、引用于一维数组类似。F二维矩矩阵数组,每一行有相同的列数,语法:二维矩矩阵数组,每一行有相同的列数,语法:,;F赋值类似于一维数组,但需用逗号分隔开下标。例:赋值类似于一维数组,但需用逗号分隔开下标。例:double,myArray=new double3,4;double,myArray=new double3,4;F可以使用直接常量初始化。使用嵌套的花括号,用逗号分可以使用直接常量初始化。使用嵌套的花括号,用逗号分隔开。例如:隔开。例如:double,myArray=1,2,3,4,2,3,4,5,double,myArray=1,2,3,4,2,3,4,5,3,4,5,6;3,4,5,6;F引用方形二维数组元素的一般格式如下:引用方形二维数组元素的一般格式如下:数组名数组名 下标下标1,1,下标下标22多维数组多维数组F多维数组:只需要更多的逗号来定义,语法:多维数组:只需要更多的逗号来定义,语法:,;F要访问多维数组中的每个元素,只需指定它们的下标,并要访问多维数组中的每个元素,只需指定它们的下标,并用逗号分隔开即可用逗号分隔开即可 。F多维数组还有一种变长数组,也叫正交数组,其中每行可多维数组还有一种变长数组,也叫正交数组,其中每行可以有不同的元素个数。以有不同的元素个数。数组的数组数组的数组F声明数组的数组,例如:声明数组的数组,例如:int a;int a;F初始化有两种方式:初始化有两种方式:第一种可以先初始化包含其他数组的数组,然后再第一种可以先初始化包含其他数组的数组,然后再初始化子数组:初始化子数组:a=new int3;a=new int3;a0=new int4;a0=new int4;a1=new int3;a1=new int3;a2=new int1;a2=new int1;第二种方式是使用字面值赋值的一种改进形式:第二种方式是使用字面值赋值的一种改进形式:a=new int1,2,3,new int1,a=new int1,2,3,new int1,new int1,2;new int1,2;3.5方法方法F1 1、方法的声明与定义、方法的声明与定义F2 2、方法的调用、方法的调用F3 3、提供的提供的MathMath类静态方法类静态方法F4 4、提供的时间日期提供的时间日期DateTimeDateTime类实例方法类实例方法1、方法的声明与定义、方法的声明与定义F可以把程序中多次用到的某个任务定义为方法可以把程序中多次用到的某个任务定义为方法,可可反复调用,提高代码复用率,提高编程效率。反复调用,提高代码复用率,提高编程效率。F在在VBVB、C C和和C+C+中,可以定义与类完全不相关的全局函数,中,可以定义与类完全不相关的全局函数,但在但在C#C#中,方法必须在类中声明和定义,正式的中,方法必须在类中声明和定义,正式的C#C#术语并术语并不区分函数和方法。不区分函数和方法。FC#C#方法分为两种:方法分为两种:实例方法:处理类的某个实例,类实例化对象后才能使实例方法:处理类的某个实例,类实例化对象后才能使用,在类中用用,在类中用publicpublic或或privateprivate声明。声明。F静态方法:不需(也不能)实例化即可使用,在类中用静态方法:不需(也不能)实例化即可使用,在类中用staticstatic声明。声明。(例如例如Console.WriteLine()Console.WriteLine()方法方法)。方法声明与定义方法声明与定义F方法的定义:方法的定义:修饰符修饰符 返回值类型返回值类型 方法名方法名(形式参数表形式参数表)方法体;方法体;return(z);/return(z);/返回结果返回结果z z F修饰符指定方法的访问权限,实例方法有修饰符指定方法的访问权限,实例方法有publicpublic、privateprivate、默认为、默认为privateprivate,静态方法在修饰符后加,静态方法在修饰符后加staticstatic关键词关键词;F返回值类型就是前面介绍的数据类型,不返回值用返回值类型就是前面介绍的数据类型,不返回值用void;void;F形式参数表是传递给方法的参数,与调用时的实参一一对形式参数表是传递给方法的参数,与调用时的实参一一对应。应。举例举例例如:一个求两个数中最大值的方法定义如下例如:一个求两个数中最大值的方法定义如下static int Max(int a,int b)/方法定义方法定义 int c;c=ab?a:b;return c;修饰符修饰符返回值类型返回值类型方法名方法名参数参数方法体方法体2、方法的调用、方法的调用F实例方法的调用,先要定义一个方法所在类的对象,并实例方法的调用,先要定义一个方法所在类的对象,并实例化;再通过对象调用方法,格式为:实例化;再通过对象调用方法,格式为:类名类名 对象名对象名=new =new 类名类名(构造函数参数构造函数参数););对象名对象名.方法名(方法名(实际参数表实际参数表););F静态方法调用格式为静态方法调用格式为:类名类名.静态方法名(静态方法名(实际参数表实际参数表););F静态方法属于整个类,而不属于根据类生成的对象,如静态方法属于整个类,而不属于根据类生成的对象,如系统把很多数学函数,以静态方法形式封装成系统把很多数学函数,以静态方法形式封装成MathMath类包类包含到命名空间含到命名空间SystemSystem中,共我们直接使用。中,共我们直接使用。F我们也经常自定义一些静态方法。我们也经常自定义一些静态方法。3、提供的提供的Math类静态方法类静态方法F把常用数学常数、三角函数、对数函数和其他通用数把常用数学常数、三角函数、对数函数和其他通用数学函数函数封装成学函数函数封装成MathMath类,包含到命名空间类,包含到命名空间SystemSystem中。中。FMathMath类的所有方法和属性都是静态的,调用语法类的所有方法和属性都是静态的,调用语法Math.method(Math.method(parameterparameter);或或 Math.constantMath.constant;Math类的静态方法类的静态方法名称说明Abs(Decimal)返回 Decimal 数字的绝对值。Acos返回余弦值为指定数字的角度。Asin返回正弦值为指定数字的角度。Atan返回正切值为指定数字的角度。Atan2返回正切值为两个指定数字的商的角度。BigMul生成两个 32 位数字的完整乘积。Ceiling()返回大于或等于指定的十进制数的最小整数值。Cos返回指定角度的余弦值。Cosh返回指定角度的双曲余弦值。DivRem(x,y,z)计算x、y两个 32 或64位有符号整数的商,并通过输出参数返回余数z。Exp返回 e 的指定次幂。Floor(Decimal)返回小于或等于指定小数的最大整数。Floor(Double)返回小于或等于指定双精度浮点数的最大整数。Math类的静态方法类的静态方法IEEERemainder返回一指定数字被另一指定数字相除的余数。Log(Double)返回指定数字的自然对数(底为 e)。Log(Double,Double)返回指定数字在使用指定底时的对数。Log10返回指定数字以 10 为底的对数。Max(,)返回两个 数中较大的一个。Min(,)返回两个数字中较小的一个。Pow返回指定数字的指定次幂。Round(Decimal)将小数值舍入到最接近的整数值。Sign(Decimal)返回表示数字符号的值。Sin返回指定角度的正弦值。Sinh返回指定角度的双曲正弦值。Sqrt返回指定数字的平方根。Tan返回指定角度的正切值。Tanh返回指定角度的双曲正切值。Truncate()计算指定小数的整数部分。4、时间日期、时间日期DateTime类实例方法类实例方法FSystem.DateTime currentTime=new System.DateTime();System.DateTime currentTime=new System.DateTime();F取当前年月日时分秒取当前年月日时分秒 currentTime=System.DateTime.Now;currentTime=System.DateTime.Now;F取当前年取当前年 int int 年年=currentTime.Year;=currentTime.Year;F取当前月取当前月 int int 月月=currentTime.Month;=currentTime.Month;F取当前日取当前日 int int 日日=currentTime.Day;=currentTime.Day;F 取当前时取当前时 int int 时时=currentTime.Hour;=currentTime.Hour;F取当前分取当前分 int int 分分=currentTime.Minute;=currentTime.Minute;F取当前秒取当前秒 int int 秒秒=currentTime.Second;=currentTime.Second;F取当前毫秒取当前毫秒 int int 毫秒毫秒=currentTime.Millisecond;=currentTime.Millisecond;(变量可用中文)(变量可用中文)时间日期时间日期DateTime类类F取中文日期显示取中文日期显示年月日时分年月日时分 string strY=currentTime.ToString(f);/string strY=currentTime.ToString(f);/不显示秒不显示秒F取中文日期显示取中文日期显示_ _年月年月 string strYM=currentTime.ToString(y);string strYM=currentTime.ToString(y);F取中文日期显示取中文日期显示_ _月日月日 string strMD=currentTime.ToString(m);string strMD=currentTime.ToString(m);F 取当前时分,格式为:取当前时分,格式为:1414:24 24 string strT=currentTime.ToString(t);string strT=currentTime.ToString(t);F取当前时间,格式为:取当前时间,格式为:2003-09-23T14:46:48 2003-09-23T14:46:48 string strT=currentTime.ToString(s);string strT=currentTime.ToString(s);F取当前时间,格式为:取当前时间,格式为:2003-09-23 14:48:30Z 2003-09-23 14:48:30Z string strT=currentTime.ToString(u);string strT=currentTime.ToString(u);F取当前时间,格式为:取当前时间,格式为:2003-09-23 14:48 2003-09-23 14:48 string strT=currentTime.ToString(g);string strT=currentTime.ToString(g);F取当前时间,格式为:取当前时间,格式为:Tue,23 Sep 2003 14:52:40 GMT Tue,23 Sep 2003 14:52:40 GMT string strT=currentTime.ToString(r);string strT=currentTime.ToString(r);F获得当前时间获得当前时间 n n 天后的日期时间天后的日期时间 DateTime newDay=DateTime.Now.AddDays(100);DateTime newDay=DateTime.Now.AddDays(100);3.6数据类型转换数据类型转换F有时需要把数据从一种类型转换为另一种类型,有时需要把数据从一种类型转换为另一种类型,C#C#有隐式有隐式转换和显式转换两种方式。转换和显式转换两种方式。F隐式转换:只要能保证转换值不会发生任何变化,就可以隐式转换:只要能保证转换值不会发生任何变化,就可以自动进行的转换。如只能从较小的整数类型隐式地转换为自动进行的转换。如只能从较小的整数类型隐式地转换为较大的整数类型,反之就可能出错。较大的整数类型,反之就可能出错。F显式转换:为避免出错,通过一些方法实现类型转换:显式转换:为避免出错,通过一些方法实现类型转换:1 1、圆括号转换数据类型、圆括号转换数据类型2 2、Convert Convert 类的静态方法转换数据类型类的静态方法转换数据类型3 3、数据类型的实例方法转换数据类型、数据类型的实例方法转换数据类型4 4、数据类型的静态方法转换数据类型、数据类型的静态方法转换数据类型1、圆括号转换数据类型、圆括号转换数据类型F圆括号圆括号()()用于将操作数强制转换为给定的数据类型用于将操作数强制转换为给定的数据类型 :(数据类型数据类型)操作数操作数2、Convert类的静态方法转换数据类型类的静态方法转换数据类型FConve