




已阅读5页,还剩81页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
浙江工贸职业技术学院 黎浩宏 c#.net语言基本语法 工作任务 会用c#.net语言的基本语法 浙江工贸职业技术学院 黎浩宏 C#.net程序设计 课件中是以vs2005为界面介绍的,开发环境如 果是vs2008或vs2010,操作方法都基本一致, 开发环境只是界面有少许不同,基本知识相同,不 影响读者学习本课程。 课件配套教材:c#.net程序设计 出版社:浙江大学出版社 主编:黎浩宏 课件例子源代码下载网址: /data/345374 或在百度搜索:“c#.net程序设计配套源代码(前 三章) ” 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 一、教学目标 理解和掌握C#.net的各种数据类型。 二、工作任务 在实际编程过程中,经常碰到交换内容的问题, 我们现在创建一个应用程序,来说明怎样交换内 容,如图2-1左图,这是程序运行时的效果,单 击“交换”按钮后,出现图2-1右图所示界面,a ,b的值实现了交换。 浙江工贸职业技术学院 黎浩宏 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 三、相关实践知识 (一)设计窗体及相关控件属性 启动visual studio 2005开发工具然后创建一 个新的c#.net windows应用程序。 1设计窗体界面 窗体设计界面如图2-2所示, 浙江工贸职业技术学院 黎浩宏 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 (二)编写事件处理方法 1编写窗体的Load事件处理方法 程序代码如下: private void Form1_Load(object sender, EventArgs e) label3.Text = “200“; label5.Text = “100“; 在代码中,我们设置窗体启动时,将标签3、标签5的内 容设置为200,100。 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 2编写“交换”按钮事件处理方法 程序代码如下: private void button1_Click(object sender, EventArgs e) int a, b, c; /将标签3的内容转换为整数,赋值给a变量, 即保存到a变量中 a = Convert.ToInt32(label3.Text); /将标签5的内容转换为整数,赋值给b变量 b = Convert.ToInt32(label5.Text); 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 /*下面三行代码即为交换a,b的值的功能*/ c = a; a = b; b = c; /将a变量的值转换为字符串,赋值给 label8.Text ,即通过标8显示出来 label8.Text = Convert.ToString(a); label10.Text = Convert.ToString(b); 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 Convert类的ToInt32方法是将括号中的 字符串转化为32位有符号整数(详见相关理 论知识),第9到11行代码实现了交换a,b 的值。我们知道,在日常生活中,如果要交 换两个杯子中所装的液体,如杯子1装的是水 ,杯子2装的是可乐,一定要借助第三个杯子 ,a,b,c可以看成是三个杯子,但只能保存整 数,“c=a;”相当于将杯子1中的水倒入杯子 3,“a=b;”相当于杯子2中的可乐倒入杯子 1,“b=c;” 相当于杯子3中的水倒入杯子2 。 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 四、相关理论知识 (一)数据类型 1整数类型 整数类型的数据值只能是整数。数学上的整 数可以是负无穷大到正无穷大,但计算机的 存储单元是有限的,因此计算机语言所提供 的数据类型都是有一定范围的。C#中提供了 8种整数类型,它们的取值范围如表2-2所示 。 浙江工贸职业技术学院 黎浩宏 类类型标识标识 符 描述可表示的数值值范围围 sbyte8位有符号整数-128 +127 byte8位无符号整数0 255 short16位有符号整数-32768 +32767 ushort16位无符号整数 0 65535 int32位有符号整数-2147483648 +2147483647 uint32位无符号整数0 232-1 long64位有符号整数-9223372036854775805 +9223372036854775807 ulong64位无符号整数0 264-1 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 在c#.net中,每一种整数数据类型都是一个 结构,整数数据类型都有两个属性 MinValue和MaxValue,这两个属性只能 读取,不能用赋值语句修改,分别表示对应 整数数据类型取值范围的最小值和最大值, 如byte.MinValue表示byte数据类型能表 示的最小值,byte.MaxValue则表示byte 数据类型能表示的最大值。 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 例2-1:该程序用于输出各种整数类型的表 示范围和所占字节数。 运行效果如图2-3所示。 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 设计和编写代码方法如下: 步骤1:在窗体上添加6个标签,窗体的标题信息按 图2-3窗体的信息设置,其余全部标签的属性按默认 值取值。 步骤2:编写窗体的Load事件处理方法,代码如下 : private void Form1_Load(object sender, EventArgs e) label1.Text = “sbyte数据类型范围:“ + sbyte.MinValue + “ + sbyte.MaxValue + “ 所占字节数:“ + sizeof(sbyte); 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 label2.Text=“ byte数据类型范围: “+byte.MinValue+“ + byte.MaxValue + “ 所占 字节数:“ + sizeof(byte); label3.Text = “ short数据类型范围:“ + short.MinValue + “ + short.MaxValue + “ 所占 字节数:“ + sizeof(short); label4.Text = “ ushort数据类型范围:“ + ushort.MinValue + “ + ushort.MaxValue + “ 所占字节数:“ + sizeof(ushort); label5.Text = “ int数据类型范围:“ + int.MinValue + “ + int.MaxValue + “ 所占字节 数:“ + sizeof(int); label6.Text = “ uint数据类型范围:“ + uint.MinValue + “ + uint.MaxValue + “ 所占字 节数:“ + sizeof(uint); 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 sizeof()方法用于返回数据类型所占字节 数的大小,括号内必须是一个数据类型。 这里简单说明一下各种数据类型的取值范围 的原理。简单的说,整数类型的取值范围和 其相应所占字节数的大小有关,所占字节数 越大,范围也越大。就好像10毫升和50毫 升的杯子,明显50毫升的杯子可以容纳的液 体的容量范围要比10毫升杯子的大。下面以 byte和sbyte两种数据类型来说明其内部原 理。我们知道,一个字节是8位,计算机都 是采用二进制方式来存放和处理数据的。 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 byte是无符号8位整数类型。当取最小值时 ,所有的数据都为0,当取最大值的时,所 有的数据都为1,如图2-4所示: 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 显然,当取最小值时,代表的是十进制数字 0,当取最大值时,代表的是十进制数字2 8-1 ,因为(11111111)21( 100000000)2,所以 (11111111)2(100000000)2 1,而二进制(100000000)2代表的是十 进制数字2 8,即256,所以其数据表示范围 是0255。 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 而sbyte数据类型由于是有符号数,必须拿 出一位来做为符号位,一般是将最高位作为 符号位,用0表示正数,用1表示负数,显然 该数据类型能表示的最大值是(01111111 )2,概述子代表的是十进制127,即2 71 ,而负数的补码和原码不同,这里就不再详 细展开,具体内容感兴趣的读者可以参考其 他书籍。 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 2浮点类型 浮点类型相当于数学中的实数,即带有小数 的数。浮点类型的数据包含两种:单精度浮 点型(float)和双精度浮点型(double), 其区别在于取值范围和精度的不同。计算机 对浮点数据的运算速度大大低于对整数的运 算速度,数据的精度越高对计算机的资源要 求越高, 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 因此在对精度要求不高的情况下,我们可以 采用单精度类型,而在精度要求较高的情况 下可以使用双精度类型。float类型占32位, 即4个字节,double类型占64位,即8个字 节。 浮点类型数据的精度和可接受的值范围如下 : 单精度(float):取值范围在+ 1.510- 45 3.410 38之间,精度为7位数。 双精度(double):取值范围为+5.0-324 1.710 308之间,精度为1516位数。 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 3小数类型 小数类型(decimal)类型数据是高精度的 类型数据,占用16个字节(128位),主要 为了满足需要高精度的财务和金融计算机领 域。小数类型数据的取值范围和精度如下: 小数类型:取值范围在+ 1.010-28 7.91028之间,精度为29位数。 小数类型数据的范围远远小于浮点型,不过 它的精确度比浮点型高得多。所以相同的数 字对于两种类型来说可能表达的内容并不相 同。 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 值得注意的是,小数类型数据的后面必须跟m或者M 后缀来表示它是decimal类型的。 如: decimal a; a = 3.14; a是小数类型变量,所以代码“a = 3.14;” 会被解释 成标准的浮点类型数据,会产生数据类型不匹配错 误,将这两行代码改为: decimal a; a = 3.14m; 其中“a = 3.14m;也可以改为“a = 3.14M;”,程序 就能正常执行。 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 可以通过给数值常数加后缀的方法来指定数 值常数的类型。具体如表2-3所示 后缀缀字符说说明例子 u(或者U)是uint类型或者ulong类型123u,235U l(或者L)是long类型或者ulong类型256738L,357582l ul是ulong类型38235ul f(或者F)是float类型3.54f,4.572F d(或者D)是double类型4.57d,55.67D m(或者 M) 是decimal类型3.57801m, 44.57730M 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 注意,在c#.net中,如果一个数值常数超过了该数 值常数的类型的所能表示的范围,C#在对程序进行 编译时,将给出错误信息。如下面代码: short a; a=32768; 由于a是short数据类型变量,short所能表示的范围 是-32768 +32767,而32768已经超过了 short能表示的数值范围,所以程序将会报错。修改 该程序非常简单,只要将a变量定义为int或long型 ,程序就能正常执行。所以在开发程序时,一定要 设置范围足够大的数据类型,否则将会报错。 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 4字符类型 C#提供的字符类型数据按照国际上公认的标准,采 用Unicode字符集。一个Unicode字符的长度为16 位(bit),它可以用来表示世界上大部分语言种类 。所有Unicode字符的集合构成字符类型。字符类 型的类型标识符是char,因此也可称为char类型。 凡是在单引号中的一个字符,就是一个字符常数, 如: char c1= a; char c2= p; char c2= 8; 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 由于c#采用的是Unicode字符集,一个Unicode的 标准字符长度为16位,2个字节,所以,单个的汉 字也可以作为字符来使用,如: char c2= 大; 在表示一个字符常数时,单引号内的有效字符数量 必须且只能是一个,并且不能是单引号或者反斜杠 ()。 反斜杠()在C#.net中有特殊的含义,在需要表 示特殊常数的地方,可以用反斜杠()开头和一些 字符组合表示转义符,转义符具体含义见表2-4。 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 由于c#采用的是Unicode字符集,一个Unicode的 标准字符长度为16位,2个字节,所以,单个的汉 字也可以作为字符来使用,如: char c2= 大; 在表示一个字符常数时,单引号内的有效字符数量 必须且只能是一个,并且不能是单引号或者反斜杠 ()。 反斜杠()在C#.net中有特殊的含义,在需要表 示特殊常数的地方,可以用反斜杠()开头和一些 字符组合表示转义符,转义符具体含义见表2-4。 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 由于c#采用的是Unicode字符集,一个Unicode的 标准字符长度为16位,2个字节,所以,单个的汉 字也可以作为字符来使用,如: char c2= 大; 在表示一个字符常数时,单引号内的有效字符数量 必须且只能是一个,并且不能是单引号或者反斜杠 ()。 反斜杠()在C#.net中有特殊的含义,在需要表 示特殊常数的地方,可以用反斜杠()开头和一些 字符组合表示转义符,转义符具体含义见表2-4。 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 字符形式含义义 1个单单引号 “1个双引号 1个反斜杠 01个空字符(注意不表示字符串结结束) a警报报符 b退格 f换页换页 n换换行 r回车车 t水平制表位 v垂直制表位 xhh1到2位十六进进制所代表的 ASCII 字符 uhhhh1到4位十六进进制所代表的unicode 字符 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 我们知道,计算机只能处理二进制数据,每 个字符在计算机中是以二进制形式存放的, 如A对应的十进制数字是65,B对应的十 进制数字是66,以此类推,同理,a对应的 十进制数字是97,b对应的十进制数字是 98,以此类推,字符所对应的数字就是其对 应ASCII码或者uincode码,如x41, u0041因为都是十六进制表示,都代表十 进制数字97,所以都代表A。 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 例2-2 转义 符的使用 运行效果如 图2-4所示 : 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 步骤1:新建一个windows应用程序,在窗体上添加2个标签 控件,相应属性全部取默认值。 步骤2:为窗体添加load事件处理方法,代码如下: oprivate void Form1_Load(object sender, EventArgs e) o o char c1, c2, c3; o c1 = A; o c2=x41; o c3=u0041; o label1.Text = “c1是:“ + Convert.ToString(c1) + “ c2是:“ + Convert.ToString(c2) + “ c3是:“ + Convert.ToString(c3); o label2.Text = “张三, rn 你好!“; o 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 第8行代码中使用的转义符,r表示回车,n 表示换行,连在一起就是回车换行,在图2- 4中显示的效果就是“张三,你好”分成两行显 示在标签2上。 我们刚才已经知道,字符数据是单引号内只 能有一个字符或汉字,但用了转义字符后, 不是有多个字符吗?如x41这不就和定义 冲突了吗?其实不然,要将x41看成是一 个整体,就是一个字符,如果没有用“”开头 ,那么就一定只能有一个字符或汉字。 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 5布尔类型 布尔类型数据用于表示逻辑真和逻辑假,布 尔类型的类型标识符是bool。 当一个变量或属性只有真或假两个取值时, 就可以用布尔类型数据,布尔类型常数只有 两种值:true(代表“真”)和false(代表“ 假”)。 如: bool b1=true; bool b2=false; 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 例2-3 显示和隐藏标签 运行效果如图2-5所示,单击隐藏按钮时, 标签看不到,单击显示按钮时,能够重新显 示标签。 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 步骤1:新建一个windows应用程序,在窗体上添加1个标签 和2个按钮,按图示界面设置按钮和标签的显示信息。 步骤2:添加按钮单击事件处理方法,代码如下: “隐藏”按钮单击事件处理方法: private void button1_Click(object sender, EventArgs e) label1.Visible = false; “显示”按钮单击事件处理方法: private void button2_Click(object sender, EventArgs e) label1.Visible = true; 标签的Visible属性用于设置标签的可见性,如果为true,标签 是可见的,如果为false,则标签将不可见。 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 步骤1:新建一个windows应用程序,在窗 体上添加1个标签和2个按钮,按图示界面设 置按钮和标签的显示信息。 步骤2:添加按钮单击事件处理方法,代码 如下: “隐藏”按钮单击事件处理方法: private void button1_Click(object sender, EventArgs e) label1.Visible = false; 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 “显示”按钮单击事件处理方法: private void button2_Click(object sender, EventArgs e) label1.Visible = true; 标签的Visible属性用于设置标签的可见性, 如果为true,标签是可见的,如果为false, 则标签将不可见。 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 6字符串类型 我们前面介绍过,字符是用单引号包含的一个字符 或中文汉字。而字符串则是被双引号包含的若干字 符。例如,“how are you!”就是字符串常数。其类 型标识符是string。如: string s1=“万里长城”; “+”用于字符串运算中,自然不能做字符串的加法, 而是用于连接两边的字符串表达式。如: string s2=s1+“永不倒”; 那么s2的值是“万里长城永不倒”。 C#支持以下两种形式的字符串常数。 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 (1)一般字符串常数 放在双引号间的一串字符,就是一个常规字 符串常数,如: “this is a pen!” “C#.net计 算机语言” 除了普通的字符,一个字符串常数也能包含 一个或多个前面描述的转义符。例如: label1.Text = “张三, rn 你好!“; 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 代码中,使用了“rn”两个转义符,就是回车换行, 这两个转义符在以后要经常用到,请读者要熟悉。 再如: label2.Text = “c:my music千里之外.mp3“; label3.Text = “老师说:“请大家认真学习c#.net 语言“; 代码中,由于反斜杠()被用于转义符使用,所以 在字符串中要显示“”必须使用转义符“”,而双引 号用于标明字符串,在字符串中要显示双引号时, 也必须,使用转义符“”。 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 (2)逐字字符串常数 逐字字符串常数以开头,后跟一对双引号,在双 引号中放入字符。如: “计算机” “How are you!” 逐字字符串常数同常规字符串常数的区别在于,在 逐字字符串常数中,每个字符都代表其最原始的意 义,用户定义成什么样,显示结果就是什么样。对 由反斜杠()开头的字符不再解释成转义符,请看 下列代码。 label4.Text = “c:my music千里之外.mp3“; 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 要记住一个特例,如果在字符串中要包含双 引号(),就必须使用两个双引号( )。如: label5.Text = “小明说:“早上好!“; 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 例2-4 字符串的使用 运行效果如图2-6所示: 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 步骤1:新建一个windows应用程序,在窗 体上添加6个标签,按从上往下的方式放置 ,全部属性取默认值。 步骤2:为窗体添加load事件处理方法,代 码如下: 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 oprivate void Form1_Load(object sender, EventArgs e) o o label1.Text = “张三, rn 你好!“; o label2.Text = “c:my music千里之外 .mp3“; o label3.Text = “老师说:“请大家认真学习 c#.net 语言“; o label4.Text =“c:my music千里之外 .mp3“; o label5.Text = “c:my music千里之外 .mp3“; o label6.Text = “小明说:“早上好!“; o 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 注意第4、6、7行代码在窗体上的显示效果 ,第4行代码中,如果只写一个“”,程序编 译将通过不了,而第7行代码,由于使用了 “”,在窗体上就显示两个“”。另外就是要 注意输出双引号的特点。 string类的Format方法用于格式化字符串, 其语法如下: string.Format(字符串,变量名1,变量名2 变量名n); 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 字符串中可以采用“N,M:格式化字符串 ”的形式来格式化转换字符串,其中的参数 含义如下: 大括号“”用来在输出字符串中插入变量的 值。 N表示输出变量的序号,从0开始,如当N为 0时,则对应输出第1个变量的值,当N为1 时,则对应输出第2个变量,依次类推。 ,M是可选项, M表示输出的变量所占的字 符个数,输出的变量按照右对齐方式排列。 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 :格式化字符也是可选项,常常需要指定输出字符 串的格式。通过使用数字格式字符串,可以使用Xn 的形式来指定输出字符串的格式,其中X指定数字的 格式,n指定数字的精度,即有效数字的位数或小数 点右边零的个数。 如下面代码: string s1; int a, b, c; a = 8; b = 9; c=10; 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 s1=string.Format(“a=0,4b=1,- 4c=2,4“, a, b, c); 上述代码执行完毕后,s1的值为 “a=8,b=9c=10”,其中“”代表 空格,0,4中的0表示在该位置插入a的值 ,因为a是排在第一个的变量,大括号中的4 表示占4个字符的宽度,右靠齐,1,-4中 的1表示在该位置插入b的值,即第2个变量 ,大括号中的4表示占4个字符的宽度,由 于有负号,所以左靠齐。除了大括号中的字 符,原样放置在字符串当中。 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 :格式化字符可以常用于格式化数字的字符类型有 以下几种: 1)货币格式 货币格式C或者c的作用是将数据转换成货币格式, 在格式字符C或者c后面的数字表示转换后的货币格 式数据的小数位数。例如: double k = 1234.789; string s1, s2; s1= string.Format(“0,8:c“, k); /结果是“¥ 1,234.79” s2= string.Format(“0,8:c4“, k); /结果是“ ¥1,234.7890” 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 2)整数数据类型格式 格式字符D或者d的作用是将数据转换成整数 类型格式,在格式字符D或者d后面的数字表 示转换后的整数类型数据的位数。这个数字 通常是正数,如果这个数字大于整数数据的 位数,则格式数据将在首位前以0补齐,如 果这个数字小于整数数据的位数,则显示所 有的整数位数。 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 例如: int k=1234; string s1, s2,s3; s1= string.Format( “0:D”, k); /结果是“1234” s2= string.Format( “0:d3”, k); /结果是“1234” s3= string.Format( “0:d5”, k); /结果是“01234” 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 3)科学计数法格式 格式字符E或者e的作用是将数据转换成科学 计数法格式,在格式字符E或者e后面的数字 表示转换后的科学计数法格式数据的小数位 数,如果省略了这个数字,则显示7位有效 数字。例如: 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 int k=123000; double f=1234.5578; string s1; s1= string.Format( “0:E”, k); /结果是 “1.230000E+005” s1= string.Format( “0:e”, k); /结果是 “1.230000e+005” s1= string.Format( “0:E”, f); /结果是 “1.234558E+003” s1= string.Format( “0:e”, f); /结果是 “1.234558e+003” s1= string.Format( “0:e4”, k); /结果是 “1.2300e+005” s1= string.Format( “0:e4”, f); /结果是 “1.2346e+005” 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 4)浮点数据类型格式 格式字符F或者f的作用是将数据转换成浮点 数据类型格式,在格式字符F或者f后面的数 字表示转换后的浮点数据的小数位数,其默 认值是2,如果所指定的小数位数大于数据 的小数位数,则在数据的末尾以0补充。 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 例如: int a=123000; double b=1234.5578; string s1; s1= string.Format( “0,-8:f”,a);/结 果是“123000.00” s1= string.Format( “0:f”,b);/结果 是“1234.56” s1= string.Format( “0,-8:f4”,a);/ 结果是“123000.0000” s1= string.Format( “0:f3”,b);/结 果是“1234.558” s1= string.Format(“0:f6”,b);/结果 是“1234.557800” 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 5)自然数据格式 格式字符N或者n的作用是将数据转换成自然 数据格式,其特点是数据的整数部分以每三 位用“,”分隔,在格式字符N或者n后面的 数字表示转换后的格式数据的小数位数,其 默认值是2。 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 例如: double k=211122.12345; int j=1234567; string s1; s1= string.Format (“0:N”,k); /结果是 “211,122.12” s1= string.Format (“0:n”, j); /结果是 “1,234,567.00” s1= string.Format (“0:n4”, k); /结果 是“211,122.1235” s1= string.Format (“0:n4”, j); /结果 是“1,234,567.0000” 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 (二)常量、变量和赋值语句 1常量 在程序运行过程中,其值不能被改变的量称 为常量。 通过关键字const来定义常量,格式如下: const 数据类型 常量名 = 表达式; 常量名可以由软件开发人员自由设定,这样 ,在程序中就可以通过常量名来访问该常量 。数据类型指定了所定义的常量的数据类型 ,而表达式的计算结果是所定义的常量的值 。 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 如下例所示: const double PI=3.14159265; double d1; d1=2*PI*3.0; 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 如下例所示: const double PI=3.14159265; double d1; d1=2*PI*3.0; 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 常量有如下特点: (1)在程序中,常量只能在定义常量时, 为常量指定一个初始值,这个常量的值在程 序的运行过程中就不允许改变,即不可以对 一个常量赋值。 (2)定义常量时,表达式中的运算符对象 只允许出现常量和常数,不能有变量存在。 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 例如: int b=30; const int a=60; const int k=b+20; /错误,表 达式中不允许出现变量 const int d=a+60; /正确,因 为a是常量 a=100; /错误,不能修改 常量的值 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 2变量 在程序运行过程中,其值可以被改变的量称为变量 。 在定义变量的时候,首先必须给每一个变量取名, 称为变量名,以便区分不同的变量。 (1)C#中定义变量的格式: 数据类型 变量名1,变量名2,; 一行中可以定义多个变量,变量名之间用逗号(“, ”)隔开,在定义变量语句的最后要有分号。如: int a, b, c; float f1, f2, f3; string s1, s2; 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 在日常生活中,我们知道,杯子是常用来装 液体的,如油,饮料等,假设我们规定杯子 只能装液体,假如只有两个杯子,按照 c#.net格式就必须如下定义: 液体 杯子1,杯子2; 显然“杯子1”或“杯子2”只能用来装液体, 如装牛奶、咖啡、或水等等,“杯子1”、“杯 子2”相当于变量名,“液体”相当于“数据类 型”,代码int a,b,c中,显然a,b,c是三个 变量,这几个变量只能用于存放整数。 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 在C#中,任何变量在使用前,必须先定义,后使用 。如下列代码: oprivate void Form1_Load(object sender, EventArgs e) o o string s1, s2; o s1 = “你好,“; o s2 = “中国“; o s3 = s1 + s2; o label1.Text = s3; o 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 这里我们用到了三个字符串变量s1,s2,s3 ,当运行时,程序会报错,因为变量s3没有 定义,只要把第3行代码改成string s1, s2,s3,即在第3行代码中加上了s3的定义 ,程序就能正常运行。 我们一定要搞清楚变量名和变量值的含义, 如杯子1中装的是水,杯子2中装的是牛奶, 用c#.net格式表示如下: 杯子1水; 杯子2牛奶; 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 试比较c#.net代码: a=5; b=10; 显然“杯子1”、“杯子2”类似于变量名a,b,c,而杯 子1中装的水和杯子2中装的牛奶类似于变量a,b的 值,分别是5,10。 (2)变量的初始化 数据类型 变量名=初值, 变量名2=初值 2; 即在定义变量的同时进行赋初值的操作为变量初始 化。如: int a=5,b=10,c=298; 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 3赋值语句 在项目一中我们简单介绍过赋值语句,下面 进行详细说明。 在C#中,给一个变量赋值的格式如下: 变量名=表达式;或 控件名.属性名= 表达式 其功能是先计算出表达式的值,然后将表达 式的值保存到变量名或控件属性中。 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 在对变量进行赋值时,表达式的值的类型必 须同变量的类型相同,否则如果系统不能自 动转换成相应变量的类型时,会出错。如有 以下变量的定义: string s1; int n; 则以下赋值是正确的: s1=“中国,你好!“; label1.Text=s1; / label1的Text 属性是string类型 n=98; 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 但是,以下赋值是错误的: s1=5; /不能将整数赋值给 字符串对象 label1.Text=25; /不能将整数 赋值给字符串属性 n=“Hello“; /不能将字符串赋值 给整型变量 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 但是,以下赋值是错误的: s1=5; /不能将整数赋值给 字符串对象 label1.Text=25; /不能将整数 赋值给字符串属性 n=“Hello“; /不能将字符串赋值 给整型变量 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 4数据类型的转换 数据类型在一定条件下是可以相互转换的, 如将int型数据转换成double型数据。C# 允许使用两种转换的方式:自动转换、强制 转换和使用方法转换。 (1) 自动转换 自动转换也称隐式转换,是系统默认的、不 需要加以声明就可以进行的转换。在自动转 换过程中,编译器不需要对转换进行详细的 检查就能安全地执行转换,例如数据从int类 型到long类型的转换。 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 有符号数值类型包括 sbyte, short, int, long, fload, double,无符号数值类型包 括byte, ushort, uint, ulong数据类型, 根据这个排列顺序,各种类型的值依次可以 向后自动进行转换。例如,把一个 short 型的数据赋值给一个 int 型的变量,short 值会自动行转换成 int 型值,再赋给 int 型 变量。 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 注意,无符号类型变量和有符号类型变量不 能相互实现自动转换,如: uint u1=8; long m; m=u1; /错误,无符号整形变量不 能赋值给有符号长整型变量 浙江工贸职业技术学院 黎浩宏 模块1 交换两个变量的值 (2)强制转换 强制转换也称显示转换,需要用户明确地指定转换 类型,一般在不存在该类型的自动转换的时候才使 用。 强制转换可以将一数值类型强制转换成另一种数值 类型,格式如下: (类型标识符)表达式 其功能是将表达式的值的类型转换为类型标识符的 类型。如: int a; a=(int)5.54; /把double类型的5.54转换成int 类型 上述代码执行完后
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 陕西省汉中市宁强县2024-2025学年八年级下学期7月期末考试数学试卷(含答案)
- 湖北省武汉市东湖高新区2024-2025学年八年级下学期期末考试英语试卷(含答案无听力原文及音频)
- 恶劣天气安全的应急预案范文
- 绿色旅游的市场需求与前景分析
- DB64-T 1919-2023 无线电固定监测站机房及配套设施建设规范
- 2025年城镇公寓购房合同范本
- 永年燃气安全知识培训课件
- 机电设备管道安装方案
- 装配式建筑施工现场电气安全管理方案
- 生殖系统济源医学护理系43课件
- 6G多维度切片QoS保障-洞察及研究
- 2025-2026学年外研版(三起)(2024)小学英语四年级上册教学计划及进度表
- 2025年海南省警务辅助人员招聘考试(公共基础知识)历年参考题库含答案详解(5套)
- 城市道路清扫保洁协议
- 2025年医学检验在编考试题库
- 高考3500词汇表(完整版)
- 毛振明《体育教学论》(第3版)配套题库【课后习题+专项题库】
- 集团公司内部资金调剂管理办法
- 思想道德与法治课件:专题五在实现中国梦的实践中放飞青春梦想
- 新人教A必修一《集合》课件
- 复用器械处理流程
评论
0/150
提交评论