第3章C和ASPNET.ppt

上传人:sccc 文档编号:5639741 上传时间:2023-08-05 格式:PPT 页数:77 大小:407.01KB
返回 下载 相关 举报
第3章C和ASPNET.ppt_第1页
第1页 / 共77页
第3章C和ASPNET.ppt_第2页
第2页 / 共77页
第3章C和ASPNET.ppt_第3页
第3页 / 共77页
第3章C和ASPNET.ppt_第4页
第4页 / 共77页
第3章C和ASPNET.ppt_第5页
第5页 / 共77页
点击查看更多>>
资源描述

《第3章C和ASPNET.ppt》由会员分享,可在线阅读,更多相关《第3章C和ASPNET.ppt(77页珍藏版)》请在三一办公上搜索。

1、第3章 C#和ASP.NET 3.5,本章要点:,了解C#语言特点和编程规范了解常用.NET命名空间熟悉C#基础语法、流程控制能创建简单的类,目录,3.1 C#概述 3.2 Framework命名空间3.3 编程规范3.3.1 程序注释 3.3.2 命名规则 3.4 常量与变量3.4.1 常量声明3.4.2 变量声明 3.4.3 修饰符 3.4.4 局部变量作用范围,目录,3.5 数据类型3.5.1 值类型 3.5.2 引用类型3.5.3 装箱和拆箱 3.6 运算符 3.7 流程控制 3.7.1 选择结构 3.7.2 循环结构 3.7.3 异常处理,目录,3.8 自定义ASP.NET类3.8.

2、1 类的常识3.8.2 属性3.8.3 构造函数 3.8.4 方法3.8.5 事件 3.8.6 继承 3.9 小结,3.1 C#概述,C#是Microsoft专门为.NET量身打造的一种全新的编程语言。C#已经分别被ECMA和ISO/IEC组织接受并形成ECMA-334标准和ISO/IEC 23270标准。C#的类型即.NET Framework所提供的类型,并直接使用.NET Framework所提供的类库。ASP.NET 3.5本身就采用C#语言开发,所以C#不仅非常适用于Web应用程序的开发。,典型特点,C#代码在.NET Framework提供的环境下运行,不允许直接操作内存,增强了程

3、序 的安全性。使用C#能构建健壮的应用程序。统一的类型系统。所有C#类型都继承于一个唯一的根类型object。因此,所有类型都共享一组通用操作。完全支持组件编程。,3.2 Framework命名空间,命名空间用于组织.NET Framework提供的几千个类。作为组织类的逻辑单元,命名空间即成了应用程序的内部组织形式,也成了应用程序的外部组织形式。使用命名空间可以解决类名冲突问题。,3.2 Framework命名空间(续),利用using语句使用命名空间,如“using system;”表示导入system命名空间。导入命名空间后使得要访问包含的类时可省略命名空间。例如,若没有使用“using

4、 system;”语句,则“string strNum=100;”这个语句就会出现编译错误,此时就应该用“System.String strNum=100;”代替。,ASP.NET 3.5页面的常用命名空间,System:提供基本类,如提供字符串操作的String类。System.Configuration:提供处理配置文件中数据的类,如能获取web.config文件中数据库连接字符串的ConnectionStringSettings类。System.Data:提供对ADO.NET类的访问,如提供数据缓存的DataSet类。System.Linq:提供使用LINQ进行查询的类和接口,如包含标准

5、查询运算符的Queryable类。,ASP.NET 3.5页面的常用命名空间(续),System.Web:提供使浏览器与服务器相互通信的类和接口,如用于读取客户端信息的HttpRequest类。System.Web.Security:提供在Web服务器实现ASP.NET安全性的类,如用于验证用户凭据的MemberShip类。System.Web.UI:提供用于创建ASP.NET网站用户界面的类和接口,如每个Web窗体都继承的Page类。,ASP.NET 3.5页面的常用命名空间(续),System.Web.UI.HtmlControls:提供在Web窗体页上创建 HTML服务器控件的类。Sys

6、tem.Web.UI.WebControls:提供在Web窗体页上创建Web服务器控件的类,如按钮Button控件类。System.Web.UI.WebControls.WebParts:提供用于创建个性化Web部件页的类和接口,如呈现模块化用户界面的Part类。System.Xml.Linq:提供用于LINQ to XML的类,如获取XML元素的Xelement类。,3.3 编程规范,良好的编程规范能极大的提高程序的可读性。程序注释命名规则,3.3.1 程序注释,代码间多行注释为“/*/”,单行注释采用“/”。类、方法、属性、接口的注释采用XML文档格式注释。在 中包含较多代码行的结束处应加

7、注释,便于阅读。对分支语句(条件分支、循环语句等)必须编写注释。,3.3.2 命名规则,Pascal形式:指将标识符的首字母和后面连接的每个单词的首字母都大写,如BackColor。Camel形式:指标识符的首字母小写,而每个后面连接的单词的首字母都大写,如backColor。,常用标识符的大小写方式对应表,dateConnection,Camel,变量名,RedValue,Pascal,只读的静态字段,BackColor,Pascal,属性,WebException,Pascal,异常类,typeName,Camel,参数,ValueChanged,Pascal,事件,System.Draw

8、ing,Pascal,命名空间,FatalError,Pascal,枚举值,ToString,Pascal,方法,ErrorLevel,Pascal,枚举类型,IDisposable,Pascal,接口,AppDomain,Pascal,类,示例,方式,标识符,示例,方式,标识符,命名的其它规则,用正确的反义词组命名具有互斥意义的变量或相反动作的函数等,如insert/delete。常量名都要使用大写字母,用下划线“_”分割单词。除局部循环变量外,一般变量名不得取单个字符。类的成员变量(属性所对应的变量)使用前缀“_”。接口命名在名字前加上“I”前缀,如IDisposable。,常用控件名简写

9、对照表,3.4 常量与变量,常量声明变量声明 修饰符 局部变量作用范围,3.4.1 常量声明,常量具有在编译时值保持不变的特性,声明时使用const关键字,同时必须初始化。常量用易于理解的名称替代了“含义不明确的数字或字符串”,使程序更易于阅读。常量使程序更易于修改。常量的访问修饰符有public、internal、protected internal和private等。,3.4.2 变量声明,变量在程序运行过程中值可以变化,必须先声明再使用。变量名长度任意,可以由数字、字母、下划线等组成,但第一个字符必须是字母或下划线。C#是区分大小写的,因此“strName”和“strname”代表不同的

10、变量。,3.4.2 变量声明(续),变量的修饰符有 public、internal、protected、protected internal、private、static和readonly,C#中将具有这些修改符的变量称为字段,而把方法中定义的变量称为局部变量。注意:局部变量前不能添加public、internal、protected、protected internal、private、static和readonly等修饰符。,3.4.3 修饰符,访问修饰符 public:访问不受限制,任何地方都可访问。internal:在当前程序中能被访问。protected:在所属的类或派生类中能被访问

11、。protected internal:在当前的程序或派生类中能被访问。private:在所属的类中能被访问。,3.4.3 修饰符(续),static使用static声明的变量称静态变量,又称为静态字段。对于类中的静态字段,在使用时即使创建了多个类的实例,都仅对应一个实例副本。访问静态字段时只能通过类直接访问,而不能通过类的实例来访问。readonly使用readonly声明的变量称只读变量,这种变量被初始化后在程序中不能修改它的值。,3.4.4 局部变量作用范围,块级:作用域范围最小的变量,如包含在if、while等语句段中的变量。这种变量仅在块内有效,在块结束后即被删除。方法级:作用于声明

12、变量的方法中,在方法外即不能访问。对象级:作用于定义类的所有方法中,只有相应的ASP.NET页面结束时才被删除。,3.5 数据类型,C#数据类型有值类型和引用类型两种。值类型的变量直接包含它们的数据,而引用类型存储对它们的数据的引用。对于值类型,一个变量的操作不会影响另一个变量;而对于引用类型,两个变量可能引用同一个对象,因此对一个变量的操作可能会影响到另一个变量。,3.5.1 值类型,简单类型:整数类型、布尔类型、字符类型和实数类型。结构类型枚举类型,布尔类型,布尔类型表示“真”和“假”,用“true”和“false”表示。注意:布尔类型不能用整数类型代替,如数字0不能代替false。,字符

13、类型,字符类型采用Unicode字符集标准,一个字符长度为16位。字符类型的赋值形式:char x1=A;/一般方式,值为字符Achar x2=中;/值为汉字“中”char x3=x0041;/十六进制方式char x4=u0041;/Unicode方式char x5=;/转义符方式注意:char类型变量声明时必须包含在一对单引号中。,常用转义符对应表,实数类型,单精度float类型:常用于科学计算双精度double类型:常用于科学计算十进制decimal类型:常用于金融计算注意:float类型必须在数据后添加“F”或“f”,decimal类型必须添加“M”或“m”,否则编译器以double类

14、型处理。,结构类型,public struct StudentInfopublic string Name;public string phone;public string Address;StudentInfo stStudent;/stStudent为一个StudentInfo结构类型变量,枚举类型,枚举类型是由一组命名常量组成的类型,使用enum关键字声明。枚举中每个元素默认是整数类型,且第一个值为0,后面每个连续的元素依次加1递增。若要改变默认起始值0,可以通过直接给第一个元素赋值的方法。枚举类型的变量在某一时刻只能取枚举中某一元素的值。,实例3-1 枚举类型变量应用,本实例首先定义

15、枚举类型Color,再声明enTest枚举变量,最后以两种形式输出enTest值。源程序:enum.aspx,3.5.2 引用类型,class类型接口类型数组类型委托类型,object类型,作为class类型之一的object类型,实质是System.Object类的别名。可以将任何类型的数据转化为object类型。,string类型,实质是一种数组,即字符串可看作是一个字符数组。在声明时要求放在一对双引号之间。两种包含转义符的字符串形式string strPath=c:ASPdefault.aspx;string strPath=c:ASPdefault.aspx;运算符可访问字符串中各个字

16、符,如:string strTest=abcdefg;char x=strTest2;/x的值为c,string类型(续),通过ToString()转化为string类型string strInt=23.ToString();使用Parse()方法或Convert类的相应方法转化为其它类型 int iString=Int32.Parse(1234);string strDatetime=Convert.ToString(DateTime.Now);,接口类型,接口常用来描述组件对外能提供的服务。接口中不能定义数据,只能定义方法、属性、事件等。包含在接口中的方法不定义具体实现,而是在接口的继承类

17、中实现。,数组类型,数组是一组数据类型相同的元素集合。要访问数组中的元素时,可以通过“数组名下标”形式获取,其中下标编号从0开始。数组可以是一维的,也可以是多维的。string s1;int s2=new int 1,2,3;int,s3=new int,1,2,4,5;,委托类型,委托是一种安全地封装方法的类型,类似于C和C+中的函数指针。与C中的函数指针不同,委托是类型安全的。通过委托可以将方法作为参数或变量使用。,3.5.3 装箱和拆箱,装箱和拆箱是实现值类型和引用类型相互转换的桥梁。装箱的核心是把值类型转化为对象类型,也就是创建一个对象并把值赋给对象。int i=100;object

18、objNum=i;/装箱,3.5.3 装箱和拆箱(续),拆箱的核心是把对象类型转换为值类型,即把值从对象实例中复制出来。int i=100;object objNum=i;/装箱int j=(int)objNum;/拆箱,3.6 运算符,请参考教材中的表3-7,3.7 流程控制,选择结构循环结构,3.7.1 选择结构,If语句注意:条件表达式在判断是否相等时一定要用“=”。switch语句注意:每一个case块的结束必须有break结束语句或goto跳转语句。,实例3-2 switch语句应用,本实例根据今天是星期几在页面上输出相应信息。源程序:switch.aspx,3.7.2 循环结构,w

19、hile语句根据条件表达式的值,执行0次或多次循环体。,实例3-3 while语句应用,本实例在页面上的TextBox中输入一个值n,单击Button按钮后计算“S=1+3+n”,并在一个Label控件中输出值。源程序:while.aspx,3.7.2 循环结构(续),do-while 循环 注意:与while语句不同,do-while循环体内语句序列会在计算条件表达式之前执行一次。for语句for语句较适用于循环次数已知的循环,循环体中语句可能执行0次或多次。注意:当使用for(;)形式时表示死循环,需要break语句跳出。,实例3-4 for语句应用,本实例利用for语句在网页上输出三角形

20、。源程序:for.aspx,3.7.2 循环结构(续),foreach语句foreach语句常用于枚举数组、集合中每个元素,并针对每个元素执行循环体内语句序列。foreach语句不能改变集合中各元素的值。foreach(数据类型 循环变量 in 集合)/语句序列,实例3-5 foreach语句应用,本实例先给数组赋值,再逐个输出数组元素。源程序:foreach.aspx,3.7.3 异常处理,异常的产生常由于激发了某个异常的条件,使得操作无法正常进行,如算术运算中的除零操作、内存不足、数组索引越界等。异常处理能使程序更加健壮,容易让程序员对捕获的错误进行处理。异常处理常使用两种形式:throw

21、语句和trycatchfinally结构。,throw语句,throw语句用于抛出异常错误信息。,实例3-6 throw语句应用,本实例当除零操作时,抛出“除数不能为零!”的错误信息。源程序:throw.aspx程序说明:本实例主要为了说明throw语句的应用。在实际工程中,变量值应来源于某个输入控件,直接赋值毫无意义。,trycatchfinally结构,异常捕获由try块完成,处理异常的代码放在catch块,而在finally块中的代码不论是否有异常发生总会被执行。catch块可多个,而finally块不是必需的。在实际应用中,finally常完成一些善后工作,如数据库操作中的数据库关闭等

22、。,trycatchfinally结构(续),try/可能出错的语句序列catch(异常声明1)/捕获异常后执行的语句序列catch(异常声明2)finally/总是执行的语句块,实例3-7 trycatchfinally结构应用,exceptionNo.aspx.cs未包含trycatchfinally结构,浏览exceptionNo.aspx时因为找不到“E:ASP.NETMyPet.mdf”数据库而给出系统报错信息。exception.aspx.cs中包含了trycatchfinally结构,当try块执行出错时将执行catch块,浏览exception.aspx时显示系统错误信息和开发

23、人员定义的出错信息。源程序:exceptionNo.aspx 源程序:exception.aspx,3.8 自定义ASP.NET类,ASP.NET 3.5是完全面向对象的,任何对象都由类生成,而自定义类能进一步扩展功能。,3.8.1 类的常识,在考虑实现ASP.NET 3.5网站功能时要尽量从类的角度去实现。类具有封装性、继承性和多态性的特点。与ASP.NET 3.5页面对应的类包含在.aspx.cs文件中。自定义的类应该放在App_Code文件夹下,Visual Studio 2008会自动编译该文件夹中包含的类,并且在使用这些类时能得Intellisense的支持。,3.8.1 类的常识(

24、续),类创建完后,使用new关键字可建立类的实例对象。类的常用修饰符主要有访问修饰符、abstract、static、partial、sealed。,3.8.1 类的常识(续),abstract 修饰符表示该类只能是其他类的基类,又称为抽象类,对这种类中的成员必须通过继承来实现。static修饰符表示该类为静态类,这种类在使用时不能使用new创建类的实例,但能够直接访问数据和方法。,3.8.1 类的常识(续),partial修饰符可以将类的定义拆分到两个或多个源文件中。每个源文件包含定义的一部分,当编译应用程序时.NET Framework会将所有部分组合起来形成一个类。sealed修饰符表示

25、该类为密封类,意味着该类不能被继承。,3.8.2 属性,可以获取或改变类中私有字段的内容,这种方式充分地体现了封装性,即不直接操作类的数据内容,而是通过访问器进行访问。访问器有get访问器和set访问器,分别用于获取和设置属性值。当仅包含get访问器时,表示该属性是只读的。,实例3-8 类Account的属性定义,本实例描述类Account中的三个属性:帐户编号(ID)、帐户所有者(Name)、帐户余额(Balance)。源程序:Account.cs,3.8.3 构造函数,当使用new关键字实例化一个对象时,将调用对象的构造函数,所以说,在使用一个类时,最先执行的语句就是构造函数中的语句。每个

26、类都有构造函数,如果没有定义构造函数,编译器会自动提供一个默认的构造函数。注意:构造函数名与类名相同且总是public类型。,实例3-9 类Accout中构造函数定义,在银行帐户类Accout中,需要构建一个对应的构造函数。源程序:Account.cs 程序说明:如建立对象时使用Account account=new Account(324001,李明,140);这表示324001值传给属性ID,再通过set访问器设置_ID的值为324001。类似地,另两个参数值李明和140也分别传递给对象中的_Name和_Balance。,3.8.4 方法,方法反映了对象的行为。方法的常用修饰符有访问修饰符

27、、void等。void指定方法不返回值。,实例3-10 类Account中存款和取款方法定义,存款方法先检查需存款的金额是否大于0,若大于0则将原帐户余额与存款金额相加保存为新的存款金额,否则抛出异常信息。取款方法先检查取款金额是否小于原帐户余额,若是则将原帐户余额减去取款金额,再保存为新的存款金额,否则抛出异常。源程序:Account.cs,实例3-11 Account类和ASP.NET网页结合,源程序:Account.aspx 程序说明:new Account(03401,李明,200)调用构造函数Account()创建实例对象。account.Balance.ToString()获取ac

28、count对象的Balance属性值,并转化为string类型数据。account.Deposit(100)表示调用account对象的Deposit方法。,3.8.5 事件,事件是一种用于类和类之间传递消息或触发新的行为的编程方式。事件的声明通过委托来实现。先定义委托,再用委托定义事件,激发事件的过程实质是调用委托。public delegate void EventHandler(object sender,EventArgs e);/定义委托public event EventHandler MyEvent;/定义事件,实例3-12 类AccountEvent中增加余额不足事件和事件应用

29、,本实例在类Account基础上新建一个类AccountEvent,定义的事件将在取款余额不足时触发。源程序:AccountEvent.cs 源程序:AcountEvent.aspx,事件应用归纳,在类中定义事件在类的某个方法中增加事件触发点在类的实例对象中注册事件编写事件触发代码,3.8.6 继承,继承可以重用现有类的数据和行为,并扩展新的功能。继承以基类为基础,通过向基类添加成员创建派生类。通常基类又称为超类或父类,派生类又称为子类。,实例3-13 继承的实现,本实例建立的EnterpriseAccount类在继承Account类的基础上增加了Type属性。源程序:EnterpriseAccount.cs,3.9 小结,C#作为Microsoft专门为.NET打造的编程语言,非常适合于ASP.NET 3.5网页开发。良好的编程规范是开发人员应当遵守的规则,这有助于代码理解、方便代码阅读。掌握C#基础语法是ASP.NET 3.5网页开发的基础。在编程时要树立绝大部分的业务处理都通过自定义类实现的思想,这实际上也是N层应用程序的编程思想。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号