资源预览内容
第1页 / 共62页
第2页 / 共62页
第3页 / 共62页
第4页 / 共62页
第5页 / 共62页
第6页 / 共62页
第7页 / 共62页
第8页 / 共62页
第9页 / 共62页
第10页 / 共62页
亲,该文档总共62页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第3章 定义类字段通过第2章我们主要了解了类的基础知识,这 一章我们将带领大家继续学习类。类主要包括 字段、方法和属性三大成员。字段(field)是 一种表示与对象或类关联的变量的成员,字段 声明用于引入一个或多个给定类型的字段。这 一章我们将重点给大家介绍如何定义类中的字 段。3.1 数据类型数据类型决定了数据在计算机中的存储方式和 处理方式。为了更好让计算机处理数据,我们 需要正确使用数据类型。C#中数据的类型很 重要,为了保证运行过程中类型的兼容,所有 的操作都要经过编译器的类型检查。类型不兼 容将不能通过编译,这样有利于防止出错,增 强程序的稳定性,因此我们有必要来学习一下 数据类型的知识。数据类型考虑到大家的理解难易,在这一章中我们只向 大家介绍简单值类型,复合值类型和引用类型 将会在后面的章节中介绍。C#中的数据类型分类如下图所示。3.1.1 简单值类型简单值类型是组成应用程序中基本构建的类型 ,也是编程中使用较多的类型,我们这里主要 给大家介绍四种简单值类型。1.整数类型C#定义了8种主要的整数类型,它们对应的位 宽与取值范围如下表所示。类型位宽宽取值值范围围 byte8028 sbyte8-2727-1 short16-215215-1 ushort160216 int32-231231-1 uint320232 long64-263263 ulong640264简单值类型C#定义了各种整数类型的有符号形式和无符 号形式,两种形式的区别如下:简单值类型2.字符类型字符类型也称为char类型,它是采用Unicode 编码的16位字符类型。在C#中,char类型是无 符号的,其取值范围为065535。标准的8位 ASCII字符集是Unicode字符集的子集,其取值 范围为0127,因此,ASCII字符仍然是有效 的C#字符串。ASCII值控制字符ASCII值控制字符ASCII值控制字符ASCII值控制字符0NUT32(space)6496、1SOH33!65A97a2STX34”66B98b3ETX35#67C99c4EOT36$68D100d5ENQ37%69E101e简单值类型3.浮点类型浮点类型可以表示带有小数部分的数值,主要分 为三种类型float、double和decimal,三种类型的 说明和取值范围如下:4.布尔类型布尔(bool)类型表示布尔逻辑量,其值只可能 是true和false。因此,布尔类型的变量或者表达 式将只能取这两个值中的一个。数据类型说说明取值值范围围float32位单精度实数1.510-453.41038double64位双精度实数5.010-3241.710308decimal128位十进制实数1.010-28-7.910283.1.2 值的表示字面量在C#中,字面量(literal)是指以人们易于阅 读的格式表示的固定值。例如,数值100是一 个字面量。在很大程度上,字面量及其用法非 常直观,下面我们将以表格形式给出大家这些 用法和示例。字面量1.整型字面量整型字面量指定的数值不包含小数部分,例如 ,10和-100都是整数字面量。另外,字面量的 类型采用能够保存该数值的最小整型类型即可 ,首先考虑的int类型,整型字面量的类型范围 由小到大依次为:int、uint、long和ulong。具 体类型由该字面量的值决定,且通过附加后缀 来显示地指定其类型。类型类别类别后缀缀示例int ,uint, long,ulong整数无120uint,ulong整数u或U120Ulong,ulong整数l或L120Lulong整数ul、uL、Ul、UL、lu、lU、Lu,或 LU100UL字面量2.浮点型字面量浮点字面量需要包含小数点,后跟数值的小数 部分,如25.46。浮点型字面量的类型默认为 double类型,同样地也可以通过附加后缀来显 示地指定类型。另外,浮点型数还可以通过科 学计数法来表示。类型类别类别后缀缀示例float实数f或F1.5Fdouble实数无、d或D1.5decimal实数m或M1.5M字面量3.字符型字面量字符类型通常通过添加单引号来表示,如a 或A。这种表示方法对于大部分打印字符是 有效的,但是对于一些非打印字符,如回车等 则不能直接表示它们,C#提出了专门的转义 序列去表示它们。4.布尔型字面量布尔型数值的字面量比较简单,只有true或 false两种。3.1.3 转义序列包含反斜杠“”的字符组合后跟字母或用数字 的组合称为转义序列,有时也称为反斜杠字符 常量。它解决了一些非打印字符,如回车,在 使用文本编辑器时出现的问题。字符类型在定 义时就用到转义序列。完整的字符转义序列表 如下:转义 序列产产生的字符字符的Unicode值值 单引号0x0027 “双引号0x0022 /反斜杠0x005C 0空0x0000 a警报0x0007 b退格0x0008 f换页 符0x000C n换行符0x000A r回车0x000D t水平制表符0x0009 v垂直制表符0x000B3.2 定义字段掌握了数据类型的知识后,我们来介绍本章的 重点也就是字段的定义,会给大家讲到字段定 义的基本形式、字段的分类以及初始化的内 容。3.2.1 定义字段常用的字段定义形式如下:以下代码演示的是定义字段的方式。3.2.2 静态字段和实例字段的访问字段可以分为静态字段和实例字段,在进行字 段声明时,如果其中含有static修饰符,称这 个字段为静态字段;反之,若不含有static修 饰符称之为实例字段。静态字段可以通过类来 访问,实例字段需要通过对象来访问。静态字段和实例字段静态字段和实例字段的区别如下:3.2.3 字段初始化初始化就是把变量赋为默认值,把控件设为默 认状态,把没准备的准备好。字段初始化就是 给字段设定初始值,我们首先需要介绍一下赋 值运算符。字段初始化1.赋值运算符赋值运算符可以把表达式的运行结果赋值给一 个变量,从而根据输出的这个变量的值可以得 到表达式的结果,它可以分为三种类型。 “=”运算符称为简单赋值运算符。它将右操作 数的值赋予左操作数,其基本形式如下:字段初始化2.字段初始化字段初始化即给字段一个初始值,也就是把等号右边的值赋 给左边的字段。其基本形式如下:一个变量一次只能接受一个值,字段也不例外。以下代码演示的是字段初始化前后的变化。字段(无论是静态字段还是实例字段)的初始值都是字段的 类型的默认值。在此默认初始化发生之前是不可能看到字段 的值的,因此字段永远不会是“未初始化的”。字段初始化以下代码演示的是字段初始化前后的变化。字段初始化以下代码演示的是字段被初始化为默认值。字段初始化实例字段和静态字段在初始化时的区别如下:3.2.4 字段的动态赋值READ()和READLINE()在编程时,用户还可以自己从键盘输入给字段赋值,赋值方 式就是利用Read()和ReadLine()。这是两种方法,大家在这儿 只需知道如何用即可。1.Read()Read()用于从标准输入流读取下一个字符。它能够将输出窗口 打开一段时间,直到有字符从键盘输入,按“Enter”键窗口关 闭。以下代码演示的是使用Read()方法赋值的方法。在输出窗口中输入值,按Enter键后,窗口关闭。输入的值自动赋给了字 段i。如果在输出窗口中输入的字符超过一个,系统将截取第一个赋给字 段。需要注意的是字段类型必须是ushort、int、uint、long、ulong、float、 double或decimal中的一种,否则将因为类型不兼容出现错误。字段的动态赋值以下代码演示的是字段类型为bool时不兼容。2.ReadLine()ReadLine()用于从标准输入流读取下一行字符 ,接受字符的字段必须是string型的。这种类 型我们在后面章节后介绍到。在这里我们可以 简单的理解为在输出窗口输入的应该是多个字 符。字段的动态赋值以下代码演示的是使用ReadLine()方法赋值的 方法。与Write()一样,如果字段类型为其他类型系统 将报错。3.2.5 字段输出给字段赋值时,如果想看到赋值后的参数的值 ,我们需要用到C#中已定义好的方法: Write()或者Writeline()进行输出。以下代码演示的是使用Write()方法查看赋值后 的参数的值。如果有多个字段时,应该用逗号将其隔开,而且占 位符从0开始。字段输出以下代码演示的是使用WriteLine()方法查看多 个字段的值。这两个方法的作用是相似的,但是有一点小的 区别需要给大家说清楚。字段输出以下代码演示的是Write()方法和WriteLine()方 法的区别。3.2.6 格式化输出C#提供了一系列特殊的格式化符,可以使数 据格式化。例如,可以用逗号将数字分开或显 示值的小数部分。这对我们控制输出字符的格 式很有帮助,这一节我们就来学习一下这些格 式化符。这儿主要给大家介绍两种,标准数字 格式说明符和自定义数字格式说明符。格式化输出1.标准数字格式说明符(1)输出货币值 “C”(或货币)格式说明符 将数字转换为表示货币金额的字符,适用于所 有类型的数值。格式和说明如图:格式化输出以下代码演示的是输出值为货币时的格式说明 符。格式化输出(2)输出十进制整数“D”(或十进制)格式说明符将数字转换为十进制数字(09 )的字符。如果数字为负,则前面加负号。只有整型才支持 此格式。格式及说明如下图所示:【示例3-13】演示的是输出值为十进制整数的格式说明符。格式化输出(3)输出科学计数法数指数(“E”)格式说明符将数字转换为“-d.dddE+ddd”或“- d.ddde+ddd”形式的字符,其中每个“d”表示一个数字(0-9)。 如果该数字为负,则该字符串以减号开头,小数点前总是恰好 有一个数字。其他格式及说明如下图所示。【示例3-14】演示的是输出值为科学计数法数的格式说明 符。格式化输出(4)输出定点数定点(“F”)格式说明符将数字转换为“-ddd.ddd”形式的字 符,其中每个“d”表示一个数字(0-9)。如果该数字为负,则该 字符以减号开头。其格式及说明如下图所示。【示例3-15】演示的是输出值为定点数的格式说明符。格式化输出(5)输出常规数根据数字类型以及是否存在精度说明符,常规(“G”)格式说 明符将数字转换为最紧凑的定点表示法或科学记数法。精度 说明符定义可以出现在结果字符中的最大有效位数。如果精 度说明符被省略或为零,则数字的类型决定默认精度,如下 表所示。数值类 型默认认精度值值Byte 或 SByte3位Int16 或 UInt165位Int32 或 UInt3210位Int6419位UInt6420位Float7位Double15位Decimal29位格式化输出如果用科学记数法表示数字时指数大于-5而且小于精度说明 符,则使用定点表示法;否则使用科学记数法。结果包含小 数点(如果需要),并且忽略小数点后面的尾部零。如果精 度说明符存在,并且结果的有效位数超过指定精度,则通过 舍入移除多余的尾部数字。【示例3-16】演示的是输出值为定点法和科学计数法的选 取。但是,如果数字是Decimal并且省略精度说明符,将总是使用 定点表示法并保留尾部零。用科学记数法时,如果格式说明 符是“G”,则结果的指数带前缀“E”;如果格式说明符是“g”, 则结果的指数带前缀“e”。指数最少包含两个数字。【示例3-17】演示的是输出值为常规数的格式说明符。格式化输出(6)输出Number数数字(“N”)格式说明符将数字转换为“-d,ddd,ddd.ddd”形式 的字符,其中“-”表示负数符号(如果需要),“d”表示数字 (0 -9),“,”表示组分隔符,“.”表示小数
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号