第2章变量与数据类型_第1页
第2章变量与数据类型_第2页
第2章变量与数据类型_第3页
第2章变量与数据类型_第4页
第2章变量与数据类型_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Visual C# Visual C# 案例教程案例教程lC#C#的语法特征的语法特征 在在C#C#中标识符不能用保留字命名,并且标志符中标识符不能用保留字命名,并且标志符对大小写敏感。比如对大小写敏感。比如class AAclass AA、class Aaclass Aa与与class aaclass aa定义了定义了3 3个不同的类。而且程序的每个不同的类。而且程序的每条语句都必须以分号条语句都必须以分号; ;结束。结束。在在C#C#中,使用变量之前,必须首先声明它。变量中,使用变量之前,必须首先声明它。变量声明的一般格式为:声明的一般格式为: 修饰符修饰符 数据类型数据类型 变量名;变量

2、名; 在在C#C#中,变量在程序中使用它之前,必须首先被中,变量在程序中使用它之前,必须首先被声明,否则会发生编译错误,并尽量在使用前对声明,否则会发生编译错误,并尽量在使用前对变量初始化。应养成为所有变量指定初始值的良变量初始化。应养成为所有变量指定初始值的良好编程习惯。好编程习惯。常量就是在程序执行过程中,其值固定不变的量。常量就是在程序执行过程中,其值固定不变的量。常量的声明格式:常量的声明格式: 修饰符修饰符 const const 常量类型常量类型 常量名常量名= =值值; ;可以在一行中声明多个常量,但它们必须具有相可以在一行中声明多个常量,但它们必须具有相同的访问级别。要在一行中

3、声明多个常量,可用同的访问级别。要在一行中声明多个常量,可用一个逗号和一个空格分隔声明,如下例所示:一个逗号和一个空格分隔声明,如下例所示: const int Four=4,Five=5,Six=6; const int Four=4,Five=5,Six=6; l每个变量都具有一个类型,以确定哪些值可每个变量都具有一个类型,以确定哪些值可以存储在该变量中。程序在运行时,需要根以存储在该变量中。程序在运行时,需要根据变量的数据类型为变量分配内存。在据变量的数据类型为变量分配内存。在C#中中提供的数据类型包括两大类:值类型和引用提供的数据类型包括两大类:值类型和引用类型类型,其中引用类型包括其

4、中引用类型包括string和和object,以及,以及我们后面会学到的类和数组。我们后面会学到的类和数组。 lC#C#支持支持8 8种整型:种整型:sbyte,byte,short,ushort,int,uint,longsbyte,byte,short,ushort,int,uint,long和和ulongulong。8 8位有符号整型位有符号整型sbytesbyte。 8 8位无符号整型位无符号整型bytebyte。1616位有符号整型位有符号整型shortshort。 1616位无符号整型位无符号整型ushortushort。3232位有符号整型位有符号整型intint。 3232位无符

5、号整型位无符号整型uintuint。6464位有符号整型位有符号整型longlong。 6464位无符号整型位无符号整型ulongulong。lboolbool数据类型是被解释为数据类型是被解释为truetrue或或falsefalse的无符的无符号值号值, , 默认值是默认值是falsefalse。如果某个变量只能包。如果某个变量只能包含含“真真/ /假假”,“是是/ /否否”或或“开开/ /关关”信息,信息,则将它声明为则将它声明为boolbool类型。类型。bool m_flag1=true; /bool m_flag1=true; /正确正确bool m_flag2=false; /b

6、ool m_flag2=false; /正确正确bool m_flag3=(98); /bool m_flag3=(98); /正确正确l计算机处理信息的一项主要内容就是字符。计算机处理信息的一项主要内容就是字符。字符包括:数字字符,英文字母,表达符号字符包括:数字字符,英文字母,表达符号等。字符类型的数据为一个字符,等。字符类型的数据为一个字符,C#C#采用采用UnicodeUnicode字符集。一个字符集。一个UnicodeUnicode字符为两个字字符为两个字节(节(1616位),可以用于表示世界上多数语言,位),可以用于表示世界上多数语言,适于软件国际化。适于软件国际化。 如:按以下方

7、法定义一个字符变量并进行赋值。如:按以下方法定义一个字符变量并进行赋值。char m_myChar1=B;char m_myChar1=B;char m_myChar2=1;char m_myChar2=1;l字符串用于存储一个字符串用于存储一个UnicodeUnicode字符。下面给出字符。下面给出字符串变量的定义和赋值示例:字符串变量的定义和赋值示例:string myStr1=“Hello”;string myStr1=“Hello”;string myStr2=“C#!”;string myStr2=“C#!”;l可以使用可以使用“+”+”将两个字符串连接起来,如:将两个字符串连接起来

8、,如:string myStr3= myStr1+ myStr2; string myStr3= myStr1+ myStr2; /+ /+运算符是用来连接字符串的。运算符是用来连接字符串的。string myStr4= Hello+C#!;string myStr4= Hello+C#!;l而如果想访问单个字符,所要做的就是访问而如果想访问单个字符,所要做的就是访问下标,请用下标,请用“ ” ”运算符访问:运算符访问:如:如:char firstCh= myStr30; char firstCh= myStr30; / /此时此时firstCh =HfirstCh =Hl当比较两个字符串是否

9、相等时,简单地使用当比较两个字符串是否相等时,简单地使用“=”=”(两个(两个= =)比较操作符:)比较操作符:如:如:if(myStr1= myStr2)if(myStr1= myStr2) lC#C#中用两种数据类型来表示小数:中用两种数据类型来表示小数:floatfloat(单(单精度)和精度)和doubledouble(双精度)。(双精度)。 表表2-1 C#2-1 C#中浮点类型的特点中浮点类型的特点浮点类型浮点类型 举举 例例 取值范围取值范围 描描 述述floatfloatfloat float val1=2.13F; val1=2.13F; +/-1.5E-45+/-1.5E-

10、45+/-3.4E38 +/-3.4E38 32-bit32-bit单精度单精度浮点数浮点数 doubledoubleDouble Double val2=5.56D; val2=5.56D; +/-5.0E-324+/-5.0E-324+/-1.7E308 +/-1.7E308 64-bit64-bit双精度双精度浮点数浮点数 lC#C#对实型常量默认为对实型常量默认为doubledouble类型。可以在实型常量类型。可以在实型常量后用后用“f”f”表示为单精度浮点数;用表示为单精度浮点数;用”d”d”的表示为的表示为双精度浮点数。双精度浮点数。l当表达式中存在一个浮点类型的值,所有其他类型

11、当表达式中存在一个浮点类型的值,所有其他类型的数据都要被转换成浮点类型,才能执行运算。的数据都要被转换成浮点类型,才能执行运算。 int x=3;int x=3; float y=3.1415926f; float y=3.1415926f; float z=x+y; / float z=x+y; /在这里在这里x x必须转换成浮点类型必须转换成浮点类型3.03.0,才能与,才能与y y相加。相加。l由由decimaldecimal关键字定义的变量可以表示关键字定义的变量可以表示128128位位数据类型。它所表示的范围是数据类型。它所表示的范围是1.0E-281.0E-28 7.9E287.9

12、E28,具有,具有2828至至2929位有效数字。同浮点类位有效数字。同浮点类型相比,小数类型具有更高的精度和更小的型相比,小数类型具有更高的精度和更小的取值范围。取值范围。定义一个小数类型变量并赋值时,使用定义一个小数类型变量并赋值时,使用m m或或M M后缀后缀以表明它是一个小数类型。以表明它是一个小数类型。 如果省略了如果省略了m m或或M M,在变量被赋值之前,它将被编,在变量被赋值之前,它将被编译器认作译器认作doubledouble型,从而导致编译错误。型,从而导致编译错误。 1 1、隐式转换(自动转换)、隐式转换(自动转换)l隐式转换是在表达式运算过程中自动完成的,隐式转换是在表

13、达式运算过程中自动完成的,其基本规则是,在不丢失数据的情况下,占其基本规则是,在不丢失数据的情况下,占用字节少的可以自动向占用字节多的转换。用字节少的可以自动向占用字节多的转换。参见表参见表2-2 2-2 数据类型隐式转换。数据类型隐式转换。当一个数值型数据前面与字符串连接时,将隐式当一个数值型数据前面与字符串连接时,将隐式转换成字符串。例如:转换成字符串。例如:Console.WriteLine Console.WriteLine (s=+3.2);(s=+3.2);输出结果为:输出结果为:s=3.2s=3.2。l隐式数值转换可概括为:隐式数值转换可概括为:整型可隐式转换到任何数值数据类型(

14、浮点型,整型可隐式转换到任何数值数据类型(浮点型,decimaldecimal类型)。类型)。在整型内或浮点型内精度低的数据类型转换到精在整型内或浮点型内精度低的数据类型转换到精度高的数据类型。度高的数据类型。不存在从有符号类型到无符号类型的隐式转换。不存在从有符号类型到无符号类型的隐式转换。不存在浮点型和不存在浮点型和decimaldecimal类型间的隐式转换。类型间的隐式转换。不存在到不存在到charchar类型的隐式转换。类型的隐式转换。不能将存储大小较大的类型隐式转换为存储大小不能将存储大小较大的类型隐式转换为存储大小较小的类型。较小的类型。2 2、显式转换(强制类型转换)、显式转换

15、(强制类型转换)l显式转换又称强制类型转换,我们用强制转显式转换又称强制类型转换,我们用强制转换表达式将表达式显示转换为给定类型,格换表达式将表达式显示转换为给定类型,格式为:式为:( (类型类型)()(表达式表达式) )显式转换除了这种转换方式外,还可以用显式转换除了这种转换方式外,还可以用ConvertConvert类将一个类将一个.Net.Net基本数据类型转换为另一基本数据类型转换为另一个个.Net.Net基本数据类型。基本数据类型。另外,所有的基本数据型都可以用另外,所有的基本数据型都可以用ToString()ToString()方方法转换为字符串。对数值型字符串,通常用法转换为字符

16、串。对数值型字符串,通常用ParseParse方法转行成数字。方法转行成数字。 可以通过使用可以通过使用 String.Format String.Format 方法或方法或 Console.Write Console.Write 方法(它调用方法(它调用 String.FormatString.Format)来设置数值结果的格式。通)来设置数值结果的格式。通过格式字符串指定格式。表过格式字符串指定格式。表2-32-3包含受支持的包含受支持的标准格式字符串。格式字符串采用以下形式:标准格式字符串。格式字符串采用以下形式:Axx,Axx,,其中,其中 A A 是格式说明符,是格式说明符,xxxx

17、 是精度说是精度说明符。格式说明符控制应用于数值的格式类明符。格式说明符控制应用于数值的格式类型,而精度说明符则控制格式化输出的有效型,而精度说明符则控制格式化输出的有效位数或小数位数。位数或小数位数。lC#C#完全支持完全支持C C语言中的算术、关系、逻辑运语言中的算术、关系、逻辑运算符及它们构成的表达式。主要的运算符有:算符及它们构成的表达式。主要的运算符有:算术运算符:算术运算符:+ +、- -、* *、/ /、% %增量运算符增量运算符(+)(+)与减量运算符与减量运算符(-)(-)关系运算符:关系运算符: 、 =、=、!、!= =、=、isis、asas条件运算符:条件运算符: “

18、“?:?:”逗号运算符逗号运算符: ,: ,逻辑运算符逻辑运算符: &: &、|、!、!类型运算符:类型运算符:typeoftypeofl注意事项如下:注意事项如下:1 1、其中、其中%(%(求模运算符求模运算符, ,或称求余运算符或称求余运算符,%,%两侧应为整两侧应为整型数据型数据, ,浮点类型数据或十进制类型数据浮点类型数据或十进制类型数据, ,如如7%47%4的的值为值为3,7%2.53,7%2.5的值为的值为2)2)。2 2、在逻辑表达式的求值过程中,不是所有的逻辑运、在逻辑表达式的求值过程中,不是所有的逻辑运算符都被执行。示例:假设算符都被执行。示例:假设x x是一个是一个bool

19、bool值或逻辑值或逻辑表达式,表达式,bool_expressionbool_expression是一个逻辑表达式。对是一个逻辑表达式。对于于“x&(bool_expression)”x&(bool_expression)”而言。只有而言。只有x x为为truetrue时,才继续判断值。如果时,才继续判断值。如果x x为为falsefalse时,逻辑表达式时,逻辑表达式的值已经确定为的值已经确定为falsefalse,不需继续求值。其他情况,不需继续求值。其他情况依次类推。依次类推。 多学一点多学一点asas操作符操作符l操作符操作符asas通过引用转换,将一个值显示转换通过引用转换,将一个

20、值显示转换成指定的引用类型。与显示类型转换不同,成指定的引用类型。与显示类型转换不同,操作符操作符asas不会产生任何异常。如果转换失败不会产生任何异常。如果转换失败结果值为结果值为“null”null”,并且结果总是一个值。,并且结果总是一个值。例如:例如:string s=x as string;string s=x as string;虽然字符型虽然字符型不能转换为字符串类型。但是,程序同样可以通不能转换为字符串类型。但是,程序同样可以通过编译。过编译。【多学一点】【多学一点】typeoftypeof操作符操作符ltypeoftypeof的作用是用于获得系统原型对象的类的作用是用于获得系统原型对象的类型。形式如下:型。形式如下: typeof(typeof(要获得系统原型对象的类型要获得系统原型对象的类型) )。typeof(int) =System.Int32typeof(int) =System.Int32typeof(long) =System.Int64typeof(long) =System.Int64typeof(double) =System.Doubletypeof(dou

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论