《ASP.NET Web程序设计 教学课件 ppt 作者 祁长兴_ chapter06》由会员分享,可在线阅读,更多相关《ASP.NET Web程序设计 教学课件 ppt 作者 祁长兴_ chapter06(95页珍藏版)》请在金锄头文库上搜索。
1、ASP.NET Web程序设计,6,ASP.NET语法基础,第,章,本章内容,6.1 ASP.NET语法,6.2 C#基础,6.3 案例,6.1 ASP.NET语法,ASP.NET文件以“.aspx”为扩展名,.aspx文件是ASP.NET动态网页 。 ASP.NET程序必须在IIS环境下才可以顺利执行。 ASP.NET文件由两部分组成:可视元素和编辑逻辑。 6.1.1 标签 6.1.2 注释 6.1.3 Page指令 6.1.4 Import指令,一个ASP.NET的Web页面包含以下几个部分: 指令:供编译器处理的ASP.NET页面和用户控件时使用的命令。 HTML标签:作为外观设计的一部
2、分,不能在代码中被访问。 服务器控件:允许用户与页面交互的控件,在服务器上被处理,允许引发服务器端事件。 代码声明块:定义当呈现页时执行的内联代码或内联表达式,放在标记中。 代码呈现块:把用C#语言编写的代码放在标签中。 页面事件:页面触发时的事件。 控件事件:在客户端被用户触发的事件。,6.1.1 标签,在ASP.NET页面中,可以包含普通HTML标签,但它们只是作为页面外观的一部分,并不能在代码中被访问。如果想在代码中访问这些HTML标签,可以把它们转化为服务器控件。 例如: 如果ASP.NET页面包含与用户进行交互的控件,则该页面必须包含一个标签 : ,6.1.1 标签,如果对HTML标
3、签或代码块中的代码需要注释,需使用语句形式进行注释,此时服务器端ASP.NET会对注释代码进行解析。,6.1.2 注释,客户端浏览器不显示注释 ,如果对ASP.NET服务器控件进行注释,则需要使用语句形式,此时服务器端ASP.NET不进行解析。,6.1.2 注释, -%,Page指令定义了ASP.NET页面分析器和编译器使用的页面特定属性和值,这是ASP.NET文件最常用的一个指令。 使用Page指令的示例代码如下所示:,6.1.3 Page指令,Import指令允许指定要导入到ASP.NET页面或用户控件中的名称空间。 导入了名称空间后,该名称空间中的所有类和接口就可以在页面和用户控件中使用
4、了。 这个指令只支持属性Namespace。 Namespace属性带有一个String值,它指定要导入的名称空间。示例代码如下所示:,6.1.4 Import指令,把名称空间导入到ASP.NET页面或用户控件后,在使用类时就不必完全限定类名。例如: Import指令的Namespace属性用来指定要导入的命名空间的完全限定名。不能在一条指令中指定多个Namespace属性,若要导入多个命名空间,则需要使用多条Import指令来完成。,6.1.4 Import指令,6.2 C#基础,C#是一种精确、简单、类型安全和面向对象的程序设计语言 。 C#去掉了宏、模板和指针,并且不允许多重继承 。 C
5、#能够与Web紧密结合 。 6.2.1 变量与类型 6.2.2 操作符与表达式 6.2.3 控制语句,1. 变量与常量,6.2.1 变量与类型,常量即在程序运行过程中不会发生改变的量。常量声明的格式如下:,常量修饰符 const 类型 常量名=常量表达式;,其中常量修饰符可以是 public、private、protected、internal和protected internal,常量修饰符可以省略。,public const int a=1;,1. 变量与常量,6.2.1 变量与类型,常量定义中,“常量表达式”的意义在于该表达式不能包含变量及函数等值会发生变化的内容,代码如下:,const
6、 int MAX=10; const double PI=3.1415926; const double AREA=PI*MAX*MAX; /合法 int iNum=10; const double AREA=PI*iNum*iNum; /不合法,1. 变量与常量,6.2.1 变量与类型,变量表示数值或字符串值或类的对象。变量存储的值可能会发生更改,但名称保持不变。变量是字段的一种类型。 变量的一般定义形式为:,变量修饰符 类型 变量名 =变量表达式 ;,变量修饰符有public、private、protected、internal、new、static和readonly,默认为private
7、。,static public int a=1;,1. 变量与常量,6.2.1 变量与类型,C#中变量名的命名规则如下。 必须以字母开头。 只能以字母、数字、下划线组成,不能包含 空格、标点、操作符等特殊符号。 不能与C#中的关键字同名。 不能与C#中的库函数同名。 可以以开始。,1. 变量与常量,6.2.1 变量与类型,用static修饰符声明的字段被称为静态变量。当静态变量所属的类被加载以后,静态变量就一直存在,并且所有属于这个类的实例都共用同一个变量。 没有static修饰的变量都是实例变量,它们属于类的实例。 类的实例变量在开始创建该类的新实例时存在,在所有对该实例的引用都终止且执行了
8、该类的析构函数时终止。,1. 变量与常量,6.2.1 变量与类型,未用ref或out修饰符声明的参数是值参数。值参数在开始调用参数所属的函数成员时存在,当返回该函数成员时值参数终止。 用ref修饰符声明的参数是引用参数。引用参数的值与被引用的基础变量相同,因此引用参数不创建新的存储位置。 用out参数修饰符声明的参数是输出参数。输出参数也不创建新的存储位置,因为它表示的是函数调用中的那个基础变量。,1. 变量与常量,6.2.1 变量与类型,隐式转换是系统自动执行的数据类型转换。 允许数值范围小的类型向数值范围大的类型转换,允许无符号整数类型向有符号整数类型转换。 显式转换也称为强制转换,是在代
9、码中明确指示将某一类型的数据转换为另一种类型。显式转换语句的一般格式为:,(数据类型名称)数据;,6.2.1 变量与类型,2. 数据类型整型,6.2.1 变量与类型,2. 数据类型实型,6.2.1 变量与类型,2. 数据类型十进制类型,6.2.1 变量与类型,十进制类型是一种高精度128位数据类型,运算结果准确到28个小数位,十进制类型的取值范围比double类型的范围要小得多但更精确。 当定义一个decimal变量并赋值给它时使用m下标以表明它是一个十进制类型,例如: decimal salary = 100.0m;,2. 数据类型字符类型,6.2.1 变量与类型,字符包括数字字符、英文字母
10、、表达符号等。 C#提供的字符类型按照国际上公认的标准采用Unicode字符集,一个Unicode的标准字符长度为16位。 在C#中存在着转义字符,用来在程序中指代特殊的控制字符。,6.2.1 变量与类型,2. 数据类型布尔类型,6.2.1 变量与类型,布尔类型表示的逻辑变量只有两种取值真或假,在C#中分别采用true和false两个值来表示。 在C#中,true值不能被其他任何非0值所代替,在其他整数类型和布尔类型之间不再存在任何转换。 例如: int b=30; if(b) b=10; /不合法,2. 数据类型结构类型,6.2.1 变量与类型,结构类型是一种可包含构造函数、常数、字段、方法
11、、属性、索引器、运算符、事件和嵌套类型的值类型。 结构类型适合表示点、矩形、颜色等这样的轻量对象。 结构类型的变量采用struct来声明,格式如下:,attributesmodifiers struct identifier :interfaces body ;,例6-1,定义一个表示矩形的结构,6.2.1 变量与类型,using System; class Program struct Rectangle public int x, y; /矩形左上角的坐标 public int width, height; /矩形的宽和高 ,6.2.1 变量与类型,static void Main() R
12、ectangle myRect; /声明一个Rectangle对象 myRect.x = 20; /初始化对象 myRect.y = 30; myRect.width = 200; myRect.height = 300; Console.WriteLine(“My Rectangle: x =“ + myRect.x); /输出对象的值 Console.WriteLine(“My Rectangle: y =“ + myRect.y); Console.WriteLine(“My Rectangle: width =“ + myRect.width); Console.WriteLine(“
13、My Rectangle: height =“ + myRect.height); ,例6-1,运行结果,6.2.1 变量与类型,My Rectangle: x =20 My Rectangle: y =30 My Rectangle: width =200 My Rectangle: height =300,2. 数据类型枚举类型,6.2.1 变量与类型,枚举类型为一组指定常量的集合。 每种枚举类型均有一种基础类型,该基础类型可以是除char类型以外的任何整型。 枚举类型的声明格式如下:,attributes modifiers enum identifier :base-type enum
14、erator-list ;,例6-2,枚举的例子,6.2.1 变量与类型,using System; class Program enum Range : long Max = 2147483648L, Min = 255L static void Main() long a = (long)Range.Max; Range b = Range.Min; Console.WriteLine(“Max =“ + a); Console.WriteLine(“Max =“ + b); ,例6-2,运行结果,6.2.1 变量与类型,Max =2147483648 Max =Min,2. 数据类型对象
15、类型,6.2.1 变量与类型,对象类型(Object)在.NET框架中是System.Object的别名,它是其他类型的基类,可将任何类型的值赋予对象类型的变量。 以下是将整型值赋予对象类型的一个例子: object objValue = 12;,2. 数据类型委托,6.2.1 变量与类型,委托使用delegate定义,但委托不是方法,它是一种特殊的类型,看成是一种新的对象类型比较好理解。 委托相当于C+中的函数指针,但它是类型安全的。 不能从一个委托类型进行派生。 委托既可以对静态方法进行调用也可以对实例方法进行调用。 每个委托类型包含一个自己的调用列表,当组合一个委托或从一个委托中删除一个
16、委托时都将产生个新的调用列表。 两个不同类型的委托即使它们有相同的签名和返回值,但还是两个不同类型的委托,其实在使用中可看作是相同的。,2. 数据类型委托,6.2.1 变量与类型,委托的声明格式如下:,public delegate void TestDelegate (string message);,委托的声明与方法的声明有些类似,这是因为委托就是为了进行方法的引用,但委托是一种类型。例如: public delegate double MyDelelgate (double x);,例6-3,委托的综合应用,6.2.1 变量与类型,using System; class Program static void Main(string args) /创建一个委托实例,封装C类的静态方法M1 MyDelegate d1 = new MyDe