1、ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,第4章 C#语言基础,教学目标通过本章学习,使学生了解C#语言的优点、了解C#的主要数据类型、使用表达式进行数学运算、掌握不同数据类型的转换方法、掌握条件及分支语句的使用。,转载请注明 http:/ http:/,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,4.1 为.NET量身打造的C#语言,.NET Framework运行环境支持多种编程语言:C#、Visual Basic.NET、Vis
2、ual C+.NET、等。作为一名编程人员必须熟练掌握其中一种编程语言。 C#和.NET Framework同时出现和发展。由于C#出现较晚,吸取了许多其他语言的优点,解决了许多已知的问题。C#是专门为.NET开发的语言,并且成为.NET事实上最好的开发语言,这是由C#的自身设计决定的。作为专门为.NET设计的语言,C#不但结合了C+的强大灵活性和Java语言的简洁的特性,还吸取了Delphi和Visual Basic所具有的易用性。因此,C#是一种使用简单、功能强大、表达力丰富的语言。C#的正确读法是“See Sharp”。 C#语言使用应该注意以下几点: (1) C#语言区分大小写。 (2
3、) 每个语句由“;”结束,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,4.2 “加法器”案例,案例说明 本案例制作一个加法器实现两个数的加运算,如图2.1所示。,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,4.2.1操作步骤,1. 创建一个简单的ASP.NET动态网站 1) 创建解决方案 (1) 单击【开始】|【所有程序】|【Microsoft Visual Studio 2005】|【Microsoft Visual Studio 2
4、005】,启动“Visual Studio 2005”,在起始页中选择创建【网站】。 (2) 在随后弹出的【新建网站】窗口中选择创建【ASP.NET网站】,编程语言采用【Visual C#】,以【文件系统】方式保存在本机的“D:websiteaspnet”目录下,然后单击【确定】按钮开始建立网站。,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,4.2.1操作步骤,2) 界面设计 (1) 单击设计按钮切换到设计视图。 (2) 从左侧边的工具箱中拖动标签控件(或双击标签控件) 到中心工作区,重复拖动4个标签控件。 (3)
5、 从工具箱中拖动文本框控件(或双击文本框控件) 到中心工作区,重复拖动2个文本框控件。 (4) 从工具箱中拖动按钮控件(或双击按钮控件) 到中心工作区。 (5)各个控件布局如图2.2所示。,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,4.2.1操作步骤,图2.2网页布局,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,4.2.1操作步骤,3) 控件属性的设置 (1) 单击选定中心工作区中的第一个标签控件,在右下角的【属性】窗口找到ID属性,
6、将内容Label1修改为lblheader,找到Text属性,输入“加法器”,其余控件属性设置见表4-1所示。,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,4.2.1操作步骤,4) 编写代码 (1) 双击按钮【计算】,进入代码页Default.aspx.cs,在“protected void btnTest_Click(object sender, EventArgs e) ”下面的一对花括号之间填入代码: float add1, add2, result;tryadd1 = float.Parse(txtadd1
7、.Text);add2 = float.Parse(txtadd2.Text);result = add1 + add2;lblresult.Text = result.ToString();catchlblresult.Text = “输入了非法数值 “; 如图2.4所示。,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,操作步骤,代码页Default.aspx.cs,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,操作步骤,(2) 单击工具
8、栏中的运行按钮在本机启动应用程序,如图2.5所示。,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,4.2.2本节知识点,1. 常量与变量 1) 常量 常量就是值固定不变的量。例如圆周率就是一个不变的常量。在程序的整个执行过程中其值一直保持不变,常量的声明就是声明他的名称和值。 声明格式如下:const 数据类型 常量表达式; 例如,声明圆周率:const float pi=3.1415927f; 声明后每次使用就可以直接引用pi,可避免数字冗长出错。,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 IS
9、BN 978-7-301-13679-9/TP.0956,2 变量,程序要对数据进行读写等运算操作,当需要保存特定的值或计算结果时,就需要用到变量。变量是存储信息的基本单元,变量中可以存储各种类型的信息。当需要访问变量中的信息时,只需要访问变量的名称。 C#语言的变量命名规范: (1) 变量名只能由字母、数字和下划线组成,而不能包含空格、标点符号、运算符等其他符号。 (2) 变量名不能与C#中的关键字名称相同。 符合以上要求的变量名就可以使用,但还要提出以下建议: (1) 变量名最好以小写字母开头。 (2) 变量名应具有描述性质。 (3) 在包含多个单词的变量名中,从第二个单词开始,每个单词都
10、采取首字母大写的形式。 变量的使用原则:先声明,后使用。 变量声明的方法:数据类型 变量名; 例如,需要声明一个变量用来保存学生的年龄,可以声明一个Int 类型的变量,格式如下:int age;,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,2. 数据类型,数据类型定义了数据的性质、表示、存储空间和结构。C#数据类型可以分为值类型和引用类型:值类型用来存储实际值;引用类型用来存储对实际数值的引用。如图2.6所示,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9
11、/TP.0956,2. 数据类型,图2.6 数据类型,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,2. 数据类型,引用类型包括 :类(class),接口(interface),数组(array),字符串(string ) 本节重点介绍值类型,C#中常用的数值类型见表4-2所示。,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,2. 3.常用的操作符及优先级,C#语言中的表达式类是与数学中的运算表达式,由一系列的运算符合操作数构成。常用的运算
12、符如加号(+)用于加法;减号(-)用于减法;当一个表达式有多个运算符时编译器就会按照默认的优先级别控制求值得顺序,表4-3列出了常用的操作符及优先级:,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,2. 3. 常用的操作符及优先级,初级运算符x.y, f(x), ax, x+, x-, new, typeof, checked, unchecked 一元运算符!, , +, -, (T)x 乘法、除法、取模运算符*, /, % 增量运算符+ , - 移位运算符 关系运算符 , = , is, as 等式运算符= ,
13、!= 逻辑“与”运算符& 逻辑“异或”运算符逻辑“或”运算符|条件“与”运算符&条件“或”运算符|条件运算符?: 赋值运算符= , *= , /= , %= , += , -= , = , &= , = , |=,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,4. 异常处理,程序运行时出现的错误有两种:可预料的和不可预料。对于可以预料的错误,可以通过各种逻辑判断进行处理,对于不可预料的错误必须进行异常处理。C#语言的异常处理功能提供了处理程序运行时出现的任何意外情况,异常处理使用try 、catch和finally关
14、键字来处理可能未成功的操作,处理失败并在事后清理资源。C#代码中处理可能的错误情况,一般要把程序的相关部分分成3种不同类型的代码块: (1) try块包含的代码组成了程序的正常操作部分,但可能遇到某些严重的错误情况。 (2) catch块包含的代码处理各种错误情况,这些错误是try块中的代码执行时遇到的。 (3) finally块包含的代码清理资源或执行要在try块或catch块末尾执行的其他操作 。 语法如下: try /可能出现异常错误的代码块 catch/错误捕捉处理 Finally/负责清理资源,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301
15、-13679-9/TP.0956,4. 异常处理,程序运行时出现的错误有两种:可预料的和不可预料。对于可以预料的错误,可以通过各种逻辑判断进行处理,对于不可预料的错误必须进行异常处理。C#语言的异常处理功能提供了处理程序运行时出现的任何意外情况,异常处理使用try 、catch和finally关键字来处理可能未成功的操作,处理失败并在事后清理资源。C#代码中处理可能的错误情况,一般要把程序的相关部分分成3种不同类型的代码块: (1) try块包含的代码组成了程序的正常操作部分,但可能遇到某些严重的错误情况。 (2) catch块包含的代码处理各种错误情况,这些错误是try块中的代码执行时遇到的
16、。 (3) finally块包含的代码清理资源或执行要在try块或catch块末尾执行的其他操作 。 语法如下: try /可能出现异常错误的代码块 catch/错误捕捉处理 Finally/负责清理资源,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,4.3 “身份证号码识别器”案例,案例说明 本案例建立一个“身份证号码识别器”,依据以下规则对身份证号码进行验证,如图2.7所示: 号码长度18位。 18位全是数字。 第7至第10位是出生的年。 倒数第2位号码,奇数为男性,偶数为女性。,ASP.NET动态网页设计案例教
17、程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,4.3 “身份证号码识别器”案例,图2.7身份证号码识别器,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,4.3.1操作步骤,1. 创建一个简单的ASP.NET动态网站 1) 创建解决方案 (1) 单击【开始】|【所有程序】|【Microsoft Visual Studio 2005】|【Microsoft Visual Studio 2005】,启动“Visual Studio 2005”,在起始页中选择创建【网站】。 (2
18、) 在随后弹出的【新建网站】窗口中选择创建【ASP.NET网站】,编程语言采用【Visual C#】,以【文件系统】方式保存在本机的“D:websiteaspnet”目录下,然后单击【确定】按钮开始建立网站。,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,4.3.1操作步骤,(1) 单击设计按钮切换到设计视图。 (2) 从左侧边的工具箱中拖动2个Label控件,1个TextBox控件和1个Button控件到中心工作区,布局如图所示。,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-
19、301-13679-9/TP.0956,4.3.1操作步骤,图2.8网页控件布局,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,4.3.1操作步骤,3) 控件属性的设置 (1) 单击选定中心工作区中的第一个标签控件,在右下角的【属性】窗口找到ID属性,将内容Label1修改为lblheader,找到Text属性,输入“身份证号码识别器”,其余控件属性设置见表4-4所示。 表4-4 控件属性表控件属性 Label1 lebheader身份证号码识别器 Textbox1 Txtcard空 ButtonID btnconf
20、irmText 提交 显示效果如图2.9所示。,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,4.3.1操作步骤,图2.9 Default.aspx页设计效果,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,4.3.1操作步骤,4) 编写代码 (1) 双击按钮【提交】,进入代码页Default.aspx.cs,在“protected void btnconfirm_Click(object sender, EventArgs e) ”下面的一
21、对花括号之间填入代码:/判断是否为18位if (txtcard.Text.Length != 18)lblmessage.Text = “您应输入18位的号码“;elseSystem.Text.ASCIIEncoding ascii = new System.Text.ASCIIEncoding();byte bytestr = ascii.GetBytes(txtcard.Text); foreach (byte c in bytestr) /判断是否含有非法字符if (c 57)lblmessage.Text = “含有非法字符“;elsestring year;year=txtcard.
22、Text.Substring(6,4);lblmessage.Text = “您生于“ + year + “年“;/ 判断性别if (bytestr16 % 2 = 1)lblmessage.Text= lblmessage.Text + “,您的性别男“;elselblmessage.Text = lblmessage.Text + “,您的性别女“; ,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,4.3.1操作步骤,5. 浏览网页 浏览网页,分别输入以下数据进行验证: 12051211979030768188、
23、120512119790307681、1205121197903076a18、1205121197903076828,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,1. 条件语句,当程序中需要进行两个或两个以上的选择时,可以根据条件来判断选择要执行的一组语句。C#中提供了if 和switch语句。,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,1. 条件语句,1) if语句 当在条件成立时执行指定的语句,不成立时执行另外的语句。 if el
24、se 语句的语法: if (布尔表达式) 执行操作的语句; 或 if (布尔表达式) 执行操作的语句; else 执行操作的语句; ,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,1. 条件语句,2) switch语句 if语句每次只能判断两个分支,如果要实现多种选择就可以使用switch语句。 switch 语句的语法: switch(控制表达式) case 常量表达式1:语句组1; break;case 常量表达式2:语句组2; break;case 常量表达式:语句组n; break;default:语句组 n
25、+1;break; ,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,2. 循环语句,许多复杂问题往往需要做大量的重复处理,因此循环结构是程序设计的基本结构。C#提供了4种循环语句分别使用不同的情况: 1) while循环 while循环的语法格式: while (条件) 需要循环执行的语句; ,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,2. 循环语句,2) do while循环 dowhile循环的语法结构: do 需要循环执行的语句;
26、 while (条件); do while循环同while循环的区别在于前者先执行后判断,后者先判断后执行。,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,2. 循环语句,for循环 for循环必须具备以下条件 (1) 条件一般需要进行一定的初始化操作。 (2) 有效的循环需要能够在适当的时候结束。 (3) 在循环体中要能够改变循环条件的成立因素。 for 循环的语法格式: for (条件初始化;循环条件;条件改变) 需要循环执行的语句 例如将1到100的整数累加,用for循环: int sun =0; for (
27、int i =1 ; i 100; i+ ) sum += i ; ,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,2. 循环语句,4) foreach循环 foreach 语句用于循环访问集合中的每一项以获取所需的信息,但不应用于改变集合内容。 例如:输出数组的每一项 string arr =new string“one”,”two”,”three” foreach (string s in arr) Response.Write(s+”); 得到结果:onetwothree,ASP.NET动态网页设计案例教程(C
28、#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,3. 怎样理解类和命名空间,说类的实例就是对象。 以下给出了一个类定义的实例,这个实例定义了Student类其中有两个属性age 、name还有两个对应字段age和name。,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,3. 怎样理解类和命名空间,public class Studentprivate int age;private string name;public int Ageget return age; set age
29、 = value; public string Nameget return name; set name = value; public Student(int age, string name)this.age = age;this.name = name;public Student(Student student)this.age = student.age;this.name = student.name;,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,命名空间,C#中的类是利用命名空间组织起来的。与文件或
30、组件不同,命名空间是一种逻辑组合,而不是物理组合,从逻辑上组织类的方式,防止命名冲突。using语句必须放在在C#文件的开头。 (1) 命名空间声明 用namespace 关键字用于声明一个命名空间。此命名空间范围允许您组织代码并为您提供了创建全局唯一类型的方法。 namespace name 类型定义 其中:在命名空间中,可以声明类、接口、结构、枚举、委托 命名空间。 (2) 命名空间的使用 在C#中通过using 指令来导入其他命名空间和类型的名称。 Using语句的语法: using指令 ; 例如 using System.Data;,ASP.NET动态网页设计案例教程(C#版) 北京大
31、学出版社 ISBN 978-7-301-13679-9/TP.0956,4.4 常见的几个类及函数,System.math(): 在C#中用到数学函数会应用到该类。 System.IO: 对文件操作,包括文件的创建、删除、读写、更新等应用到该类。 System.Data: ADO.Net的基本类。 System.Data.SqlClient: 为SQL Server7.0或更新版本的SQL Server数据库设计的数据存取类。 System.Data.OleDb: 为OLE DB数据源或SQL Server6.5或更早版本数据库设计的数据存取类。 System.Drawing: 绘制图形时候,
32、需要使用的是System.Drawing名称空间下的类,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,4.4.2 常用属性和方法,(1) DateTime结构 System.DateTime currentTime=new System.DateTime(); 取当前年月日时分秒 :currentTime=System.DateTime.Now; 取当前年 :int year=currentTime.Year; 取当前月 :int month=currentTime.Month; 取当前日:int day=curre
33、ntTime.Day; 取当前时 :int hour=currentTime.Hour; 取当前分 :int minute=currentTime.Minute; 取当前秒 :int second=currentTime.Second; 取当前毫秒 :int milisecong=currentTime.Millisecond; 取中文日期显示:年月日时分。 string strY=currentTime.ToString(“f“); /不显示秒 取中文日期显示:年月。 string strYM=currentTime.ToString(“y“); 取中文日期显示:月日。 string str
34、MD=currentTime.ToString(“m“); 取当前年月日,如:2008-4-23。 string strYMD=currentTime.ToString(“d“); 取当前时分,格式:14:24。 string strT=currentTime.ToString(“t“);,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,4.4.2 常用属性和方法,(2) Int32.Parse(变量) Int32.Parse(“常量“) 字符型转换 转为32位数字型 (3) 变量.ToString() :字符型转换为
35、字符串,例如: 12345.ToString(“n“); /生成 12,345.00 12345.ToString(“C“); /生成 ¥12,345.00 12345.ToString(“e“); /生成 1.234500e+004 12345.ToString(“f4“); /生成 12345.0000 12345.ToString(“x“); /生成 3039 (16进制) 12345.ToString(“p“); /生成 1,234,500.00% (4) 变量.Length :求变量的长度,返回值为数字型 ,例如: string str=“中国“; int Len = str.Len
36、gth ; /Len是自定义变量, str是求测的字串的变量名,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,4.4.2 常用属性和方法,(5) System.Text.Encoding.Default.GetBytes(变量) :字码转换,转为比特码,如: byte bytStr = System.Text.Encoding.Default.GetBytes(str); 然后可得到比特长度: len = bytStr.Length; (6) System.Text.StringBuilder(“) :字符串相加。如
37、: System.Text.StringBuilder sb = new System.Text.StringBuilder(“); sb.Append(“中华“); sb.Append(“人民“); sb.Append(“共和国“); 此时sb的值为“中华人民共和国”,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,4.4.2 常用属性和方法,(7) 变量.Substring(参数1,参数2):截取字串的一部分,参数1为左起始位数,参数2为截取几位。如: string s1 = str.Substring(0,2);
38、 (8) (char)变量:把数字转为字符,查代码代表的字符。如: Response.Write(char)22269); /返回“国”字。 (9) Trim() :清除字串前后空格。 (10) 字串变量.Replace(“子字串“,“替换为“) :字串替换。如: string str=“中国“; str=str.Replace(“国“,“央“); /将国字换为央字 Response.Write(str); /输出结果为“中央” (11) Math.Max(i,j) :取i与j中的最大值。如: int x=Math.Max(5,10); / x将取值 10,ASP.NET动态网页设计案例教程(C#版) 北京大学出版社 ISBN 978-7-301-13679-9/TP.0956,本 章 小 结,熟练掌握C#语言是高效利用ASP.NET开发强大的动态网站的基础。本章通过“加法器”案例介绍了C#语言的基本语法结构。变量的声明、数据类型定义方法,数据类型的转换函数和对程序异常地处理。通过“身份证号码识别器”案例,介绍了变量的声明、数据类型定义方法和一些常见的判断语句结构。,转载请注明 http:/ http:/,