第2章 C#编程语言基础.ppt
《第2章 C#编程语言基础.ppt》由会员分享,可在线阅读,更多相关《第2章 C#编程语言基础.ppt(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、ASP.NET Web程序设计与应用程序设计与应用第第2章章C#编程语言基础编程语言基础第第2 2章章 C C#编编程程语语言言基基础础第第2章章C#编程语言基础编程语言基础2.1C#程序构成程序构成2.2C#数据类型数据类型2.3常量、变量与表达式常量、变量与表达式2.4基本结构基本结构2第第2 2章章 C C#编编程程语语言言基基础础学习目标学习目标掌握掌握C#的基本数据类型的基本数据类型掌握掌握C#各种运算符表达式的用法;各种运算符表达式的用法;理解理解C#控制台程序的基本结构;控制台程序的基本结构;会使用会使用IF、WHILE、FOR等语句编写等语句编写程序程序.3第第2 2章章 C
2、C#编编程程语语言言基基础础2.1C#程序构成程序构成有若干种不同类型的声明空间有若干种不同类型的声明空间:在程序的所有源文件中,一个声明语句(称为在程序的所有源文件中,一个声明语句(称为“命名空间命名空间成员声明成员声明”)若没有被置于任何一个)若没有被置于任何一个“命名空间声明命名空间声明”下,下,它就属于一个组合声明空间(称为它就属于一个组合声明空间(称为“全局声明空间全局声明空间”)。)。在程序的所有源文件中,一个在程序的所有源文件中,一个“命名空间成员声明命名空间成员声明”若在若在“命名空间声明命名空间声明”中具有相同的完全限定的命名空间名称,中具有相同的完全限定的命名空间名称,它就
3、属于一个组合声明空间。它就属于一个组合声明空间。每个类、结构或接口声明创建一个新的声明空间。新的声每个类、结构或接口声明创建一个新的声明空间。新的声明空间名称是通过明空间名称是通过“类成员声明类成员声明”、“结构成员声明结构成员声明”或或“接口成员声明接口成员声明”引入的。除了重载实例构造函数声明和引入的。除了重载实例构造函数声明和静态构造函数声明外,类或结构成员声明不能引入与该类静态构造函数声明外,类或结构成员声明不能引入与该类或结构同名的成员。类、结构或接口允许声明重载方法和或结构同名的成员。类、结构或接口允许声明重载方法和索引器。另外,类或结构允许重载实例构造函数和运算符索引器。另外,类
4、或结构允许重载实例构造函数和运算符的声明。例如,类、结构或接口可以包含多个同名的方法的声明。例如,类、结构或接口可以包含多个同名的方法声明,前提是这些方法声明的签名不同。注意,基类与类声明,前提是这些方法声明的签名不同。注意,基类与类的声明空间无关,基接口与接口的声明空间无关。因此,的声明空间无关,基接口与接口的声明空间无关。因此,允许在派生类或接口内声明与所继承的成员同名的成员。允许在派生类或接口内声明与所继承的成员同名的成员。我们说这类成员我们说这类成员“隐藏隐藏”了那些被它们所继承的成员。了那些被它们所继承的成员。4第第2 2章章 C C#编编程程语语言言基基础础2.1C#程序构成程序构
5、成每个枚举声明创建一个新的声明空间。名称通过每个枚举声明创建一个新的声明空间。名称通过“枚举枚举成员声明成员声明”引入此声明空间。引入此声明空间。每个每个“块块”或或“switch块块”为局部变量和常量创建一个为局部变量和常量创建一个不同的声明空间。名称通过不同的声明空间。名称通过“局部变量声明局部变量声明”和和“局部局部常量声明常量声明”引入此声明空间。如果块是实例构造函数、引入此声明空间。如果块是实例构造函数、方法或运算符声明的体,或是索引器声明的方法或运算符声明的体,或是索引器声明的get或或set访问器,这些声明中声明的参数是块的局部变量访问器,这些声明中声明的参数是块的局部变量声明空
6、间的成员。块的局部变量声明空间包含任何嵌套声明空间的成员。块的局部变量声明空间包含任何嵌套块。因此,在嵌套块中不可能声明与封闭它的块中的局块。因此,在嵌套块中不可能声明与封闭它的块中的局部变量同名的局部变量。部变量同名的局部变量。每个每个“块块”或或“switch块块”都为标签创建一个单独的声都为标签创建一个单独的声明空间。名称通过标记语句引入此声明空间,通过明空间。名称通过标记语句引入此声明空间,通过goto语句被引用。块的语句被引用。块的“标签声明空间标签声明空间”包含任何嵌包含任何嵌套块。因此,在嵌套块中不可能声明与封闭它的块中的套块。因此,在嵌套块中不可能声明与封闭它的块中的标签同名的
7、标签。标签同名的标签。声明名称的文本顺序通常不重要。具体说来声明名称的文本顺序通常不重要。具体说来5第第2 2章章 C C#编编程程语语言言基基础础2.1C#程序构成程序构成字段声明和局部变量声明的声明顺序确定其初字段声明和局部变量声明的声明顺序确定其初始值设定项(若有的话)的执行顺序。始值设定项(若有的话)的执行顺序。在使用局部变量前必须先定义它们。在使用局部变量前必须先定义它们。当省略当省略“常数表达式常数表达式”值时,枚举成员声明的声值时,枚举成员声明的声明顺序非常重要。明顺序非常重要。6第第2 2章章 C C#编编程程语语言言基基础础C#应用程序的结构应用程序的结构1命名空间命名空间C
8、#程序是用命名空间来组织代码,要访问某个命名空间程序是用命名空间来组织代码,要访问某个命名空间中的类或对象,必须用如下语法:中的类或对象,必须用如下语法:命名空间命名空间.类名类名由于由于Console类位于类位于System命名空间中,所以实际上命名空间中,所以实际上用户在访问用户在访问Console类时,完整的写法应该是:类时,完整的写法应该是:System.Console2.类类C#程序由大括号程序由大括号“”和和“”构成,程序中每一对大括构成,程序中每一对大括号号“”构成一个块。大括号成对出现,可以嵌套,构成一个块。大括号成对出现,可以嵌套,即块内可以出现子块,嵌套深度不受限制,可以嵌
9、套即块内可以出现子块,嵌套深度不受限制,可以嵌套任意层,但一定要保证任意层,但一定要保证“”和和“”成对出现,否则,成对出现,否则,程序就是错误的。程序就是错误的。注意注意:C#程序中的语句以程序中的语句以“;”表示结束表示结束7第第2 2章章 C C#编编程程语语言言基基础础3Main()方法方法程序的入口从下面的代码开始:程序的入口从下面的代码开始:staticvoidMain()4注释注释在在C#语言中,提供了两种注释方法:语言中,提供了两种注释方法:(1)每一行中每一行中“/”后面的内容作为注释内容,后面的内容作为注释内容,该方式只对本行生效;该方式只对本行生效;(2)需要多行注释的时
10、候,在第一行之前使用需要多行注释的时候,在第一行之前使用“/*”,在末尾一行之后使用,在末尾一行之后使用“*/”,也就是,也就是说被说被“/*”与与*/所包含的内容都作为注释内容。所包含的内容都作为注释内容。8第第2 2章章 C C#编编程程语语言言基基础础2.2C#数据类型数据类型C#语言的类型如图语言的类型如图9第第2 2章章 C C#编编程程语语言言基基础础2.2.1值类型值类型1简单类型(简单类型(SimpleType)类型长度.NET类型说明范围和精度byte1byte8位无符号整型0255sbyte1sbyte8位有符号整型-128127short2int1616位有符号整型-32
11、76832767ushort2uint1616位无符号整型065535int4int3232位有符号整型21474836482147483647uint4uint3232位无符号整型04294967295long8int6464位有符号整型92233720368547758089223372036854775807ulong8uint6464位无符号整型018446744073709551615float4single32位单精度浮点类型+1.51045至+3.41038(7位精度)double8double64位双精度浮点类型+5.010324至+1.710308(15位精度)decimal
12、16decimal128位高精度十进制数类型+1.01028至+7.91028(28位精度)charchar16位字符类型boolboolean逻辑值(真或假)true,false10第第2 2章章 C C#编编程程语语言言基基础础2枚举类型(枚举类型(EnumType)访问修辞符访问修辞符enum枚举名:基础类型枚举名:基础类型枚举成员枚举成员11第第2 2章章 C C#编编程程语语言言基基础础3结构类型结构类型结构类型也是先声明后使用。声明结构类型时要使用结构类型也是先声明后使用。声明结构类型时要使用struct关键字,声明结构类型的一般语法格式如下:关键字,声明结构类型的一般语法格式如下
13、:struct标识符标识符结构成员定义;结构成员定义;说明:说明:(1)struct关键字表示声明的是一种结构类型。关键字表示声明的是一种结构类型。(2)标识符必须是)标识符必须是C#合法的标识符,它用来在程序合法的标识符,它用来在程序中唯一确定所定义的结构。中唯一确定所定义的结构。(3)由一对花括号括起来的部分称为结构体,它定义)由一对花括号括起来的部分称为结构体,它定义了结构中所包含的各种成员。了结构中所包含的各种成员。12第第2 2章章 C C#编编程程语语言言基基础础3结构类型结构类型structStudent/定义名为定义名为Student的结构类的结构类型型longno;/定义结构
14、的数据成员定义结构的数据成员stringname;intage;stringuniversity;/定义结构的方法成员定义结构的方法成员voidstructmethod()/方法可执行代码方法可执行代码13第第2 2章章 C C#编编程程语语言言基基础础2.2.2引用类型引用类型引用类型是将数据保存在堆上的存储方式。当引用类型是将数据保存在堆上的存储方式。当将一个数据给引用类型时,它被保存在堆上的将一个数据给引用类型时,它被保存在堆上的变量中。引用类型的大小不固定,为了可以快变量中。引用类型的大小不固定,为了可以快速地搜索引用类型数据的值,通过将其地址保速地搜索引用类型数据的值,通过将其地址保
15、存在堆栈上,可以通过地址找到真正数据的所存在堆栈上,可以通过地址找到真正数据的所在。引用类型很抽象,就像一个门牌号,可以在。引用类型很抽象,就像一个门牌号,可以根据门牌号找到所在的房子。根据门牌号找到所在的房子。14第第2 2章章 C C#编编程程语语言言基基础础2.2.2引用类型引用类型C#引用类型和值类型的主要区别有:引用类型和值类型的主要区别有:值类型变量直接包含它们的数据,对于值类型,每个变值类型变量直接包含它们的数据,对于值类型,每个变量都有它们自己对数据的拷贝,所以不可能因为对一个量都有它们自己对数据的拷贝,所以不可能因为对一个进行操作而影响到其它变量;然而引用类型是存储对象进行操
16、作而影响到其它变量;然而引用类型是存储对象的引用。的引用。如果两个变量引用相同的对象,对一个变量的操作会影如果两个变量引用相同的对象,对一个变量的操作会影响到另一个变量所引用的对象。从存储方式来看,值类响到另一个变量所引用的对象。从存储方式来看,值类型的变量本身包含它们的数据值,将存储在栈中。而引型的变量本身包含它们的数据值,将存储在栈中。而引用类型的变量包含的是指向含数据值的内存块的位置信用类型的变量包含的是指向含数据值的内存块的位置信息,将存储在受控的堆中。息,将存储在受控的堆中。C#的类型系统是统一的,因此任何类型的值都可以按对的类型系统是统一的,因此任何类型的值都可以按对象处理。象处理
17、。C#中的每个类型直接或间接地从中的每个类型直接或间接地从object类类类型派生,而类型派生,而object是所有类型的最终基类。引用类是所有类型的最终基类。引用类型的值都被当作型的值都被当作“对象对象”来处理,这是因为这些值可以来处理,这是因为这些值可以简单地被视为是属于简单地被视为是属于object类型。值类型的值则通过类型。值类型的值则通过执行装箱执行装箱(boxing)和拆箱和拆箱(unboxing)操作亦按对操作亦按对象处理。象处理。15第第2 2章章 C C#编编程程语语言言基基础础2.3常量、变量与表达式常量、变量与表达式2.3.1常量常量1直接常量直接常量直接常量即数据值本身
18、。直接常量即数据值本身。(1)整型常量)整型常量C#语言整型常量的三种表示形式:语言整型常量的三种表示形式:十进制整数,如十进制整数,如12,-314,0。八进制整数,要求以八进制整数,要求以0开头,如开头,如012十六进制数,要求十六进制数,要求0 x或或0X开头,如开头,如0 x12C#语言的整型常量默认为语言的整型常量默认为int型,如:型,如:inti=3;声明声明long型常量可以后加型常量可以后加l或或L,如:,如:longl=3L;16第第2 2章章 C C#编编程程语语言言基基础础2.3常量、变量与表达式常量、变量与表达式(2)实型常量)实型常量C#浮点类型常量有两种表示形式:
19、浮点类型常量有两种表示形式:十进制数形式:必须含有小数点,例如:十进制数形式:必须含有小数点,例如:3.14314.0.314科学记数法形式:如:科学记数法形式:如:3.14e23.14E2314E2C#浮点型常量默认为浮点型常量默认为double型,如要声明一个常量型,如要声明一个常量为为float型,则需在数字后面加型,则需在数字后面加f或或F,如:,如:doubled=3.14;floatf=3.14f;(3)字符常量)字符常量字符常量是用单引号括起来的单个字符,如:字符常量是用单引号括起来的单个字符,如:charc=A;17第第2 2章章 C C#编编程程语语言言基基础础转义字符转义字
20、符转义字符含义ddd1到3位八进制数所表示的字符(ddd)uxxxx1到4位十六进制数所表示的字符(xxxx)单引号字符双引号字符反斜杠字符r回车n换行f走纸换页t横向跳格b退格18第第2 2章章 C C#编编程程语语言言基基础础(4)字符串常量)字符串常量字符串常量是用双引号括起的零个或多个字符字符串常量是用双引号括起的零个或多个字符序列。序列。C#支持两种形式的字符串常量,一种是支持两种形式的字符串常量,一种是常规字符串,另一种是逐字字符串。常规字符常规字符串,另一种是逐字字符串。常规字符串就是用双引号括起的一串字符,可以包括转串就是用双引号括起的一串字符,可以包括转义字符。如:义字符。如
21、:”China,Beijing”,“d:myfilef1.txt”等。等。(5)布尔常量)布尔常量boolean类型适于逻辑运算,一般用于程序流类型适于逻辑运算,一般用于程序流程控制。程控制。boolean类型数据只允许取值类型数据只允许取值true或或false,不可以不可以0或非或非0的整数替代的整数替代true和和false。19第第2 2章章 C C#编编程程语语言言基基础础2.符号常量符号常量符号常量通常用来保存一个固定值,例如,在符号常量通常用来保存一个固定值,例如,在程序设计中,圆周率程序设计中,圆周率“PI”是一个固定的值,那是一个固定的值,那么,在程序开始时,就可以将其定义为
22、一个常么,在程序开始时,就可以将其定义为一个常量。量。常量的定义语法如下所示,其中,常量的定义语法如下所示,其中,“const”是是定义常量的关键字,同时还要将变量名大写。定义常量的关键字,同时还要将变量名大写。const类型名称类型名称常量名常量名=常量表达式常量表达式;20第第2 2章章 C C#编编程程语语言言基基础础2.3.2变量变量1变量命名规则变量命名规则变量名的第首字符必须是字母、汉字或下划线。变量名的第首字符必须是字母、汉字或下划线。变量名中不能包含空格、小数点以及各种符号。变量名中不能包含空格、小数点以及各种符号。组成变量名的字符数不要太长,应控制在组成变量名的字符数不要太长
23、,应控制在330个字个字符。符。变量名不能是关键字。如:变量名不能是关键字。如:int,object等不能用作变等不能用作变量名。量名。变量名在同一范围内必须是唯一的。变量名在同一范围内必须是唯一的。在在C#中声明变量使用下述语法:中声明变量使用下述语法:类型类型标识符标识符;例如:例如:inti;21第第2 2章章 C C#编编程程语语言言基基础础2变量的初始化变量的初始化C#有两个方法可确保变量在使用前进行了初始有两个方法可确保变量在使用前进行了初始化:化:(1)变量是类或结构中的字段,如果没有显)变量是类或结构中的字段,如果没有显式初始化,在默认状态下创建这些变量时,其式初始化,在默认状
24、态下创建这些变量时,其值就是值就是0。(2)方法的局部变量必须在代码中显式初始)方法的局部变量必须在代码中显式初始化,之后才能在语句中使用它们的值。此时,化,之后才能在语句中使用它们的值。此时,初始化不是在声明该变量时进行的,但编译器初始化不是在声明该变量时进行的,但编译器会通过方法检查所有可能的路径,如果检测到会通过方法检查所有可能的路径,如果检测到局部变量在初始化之前就使用了它的值,就会局部变量在初始化之前就使用了它的值,就会产生错误。产生错误。22第第2 2章章 C C#编编程程语语言言基基础础3变量的作用域变量的作用域变量的作用域是可以访问该变量的代码区域。变量的作用域是可以访问该变量
25、的代码区域。一般情况下,确定作用域有以下规则:一般情况下,确定作用域有以下规则:只要字段所属的类在某个作用域内,其字段只要字段所属的类在某个作用域内,其字段(也称为成员变量)也在该作用域内(也称为成员变量)也在该作用域内(在在C+、Java和和VB中也是这样中也是这样)。局部变量存在于表示声明该变量的块语句或方局部变量存在于表示声明该变量的块语句或方法结束的封闭花括号之前的作用域内。法结束的封闭花括号之前的作用域内。在在for、while或类似语句中声明的局部变量或类似语句中声明的局部变量存在于该循环体内(存在于该循环体内(C+程序员注意,这与程序员注意,这与C+的的ANSI标准相同。标准相同
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第2章 C#编程语言基础 C# 编程 语言 基础
限制150内