C#编程和.NET框架 教学课件 ppt 作者 崔建江 第3章 第三章

上传人:E**** 文档编号:89542420 上传时间:2019-05-27 格式:PPTX 页数:177 大小:755.21KB
返回 下载 相关 举报
C#编程和.NET框架 教学课件 ppt 作者 崔建江 第3章 第三章_第1页
第1页 / 共177页
C#编程和.NET框架 教学课件 ppt 作者 崔建江 第3章 第三章_第2页
第2页 / 共177页
C#编程和.NET框架 教学课件 ppt 作者 崔建江 第3章 第三章_第3页
第3页 / 共177页
C#编程和.NET框架 教学课件 ppt 作者 崔建江 第3章 第三章_第4页
第4页 / 共177页
C#编程和.NET框架 教学课件 ppt 作者 崔建江 第3章 第三章_第5页
第5页 / 共177页
点击查看更多>>
资源描述

《C#编程和.NET框架 教学课件 ppt 作者 崔建江 第3章 第三章》由会员分享,可在线阅读,更多相关《C#编程和.NET框架 教学课件 ppt 作者 崔建江 第3章 第三章(177页珍藏版)》请在金锄头文库上搜索。

1、C#编程和.NET框架 (第二版) 主讲人:崔建江 东北大学信息科学与工程学院,C#编程与.NET框架,第3章 C#语言基础,第3章:C#语言基础,3,介绍C#语言的基础知识,主要包括:数据类型、运算符和表达式、流控制、数组和集合五部分。 本章是后续章节的基础,学完本章,可编写简单C#应用程序。,第3章:C#语言基础,4,第3章 C#语言基础,3.1 C#关键字 3.2 C#数据类型 3.3 运算符与表达式 3.4 流控制 3.5 数组 3.6 集合,第3章:C#语言基础,5,3.1 C#关键字,关键字是对编译器具有特殊意义的预定义保留标识符。它们不能在程序中用作标识符,除非它们有一个 前缀。

2、,第3章:C#语言基础,6,C#关键字表,第3章:C#语言基础,7,3.2 C#数据类型,CTS类型 值类型与引用类型 预定义类型 变量 常量 简单类型的数据间转换 复合类型 装箱和拆箱,第3章:C#语言基础,8,3.2.1 CTS类型,CTS ( Common Type System )简介: 著名计算机科学家N.Wirth提出过这样一个公式:算法 + 数据结构 = 程序,指出了数据结构在计算机科学中的地位,也指出了它与算法的密切联系。,第3章:C#语言基础,9,数据结构:反映一个数据的内部构成,是数据存在的形式,在微软.NET平台中的形式就是公共类型系统CTS。 公共类型系统定义了可在中间

3、语言使用的预定义数据类型,用于.NET 框架语言都可生成最终基于这些类型的编译代码。,第3章:C#语言基础,10,C#数据类型,公共类型系统CTS的层次结构。,第3章:C#语言基础,11,图中的类型如下表:,第3章:C#语言基础,12,3.2.2 值类型与引用类型,C中,数据类型分为值类型和引用类型两种。 从概念上看,值类型直接存储其值,而引用类型存储对值的引用。 从在内存中的存储位置上看,值类型变量把数据存储在栈中,引用类型变量把数据存储在堆中。,第3章:C#语言基础,13,栈:用来存放程序的局部数据,即各个函数(方法)中的数据。当调用一个函数时,就需要为它的参数和局部变量分配内存。这些内存

4、从栈中获得。当函数结束(返回或抛出异常)时,所占用的内存自动释放回栈中。,第3章:C#语言基础,14,堆:存放程序的动态数据。当使用new关键字和调用构造函数来创建一个对象时,就需要该对象分配内存。对象的内存总是从堆中获得。当方法结束(返回或抛出异常)时,对象所占用的内存并不会自动释放回堆中。,第3章:C#语言基础,15,3.2.2 值类型与引用类型,值类型与引用类型在内存中的存储,栈,堆,int i 20,int i=20;,“hello”,string s=“hello”;,int j=i;,string t=s;,string s s,int j 20,string t t,第3章:C#

5、语言基础,16,3.2.3 预定义类型,预定义数据类型由C#和.NET框架提供,每个预定义类型都映射为CTS中定义的类型。 C#中有15个预定义类型,其中有13个值类型和两个引用类型(string和object)。,第3章:C#语言基础,17,值类型:直接存储其值。 引用类型:存储对值的引用。 与其它语言相比,C#中的值类型基本上等价于VB或C+中的简单类型(整型、浮点型,但没有指针或引用)。引用类型与VB中的引用类型相同,与C+中通过指针访问的类型类似。,第3章:C#语言基础,18,3.2.3 预定义类型(值类型),预定义的值类型,第3章:C#语言基础,19,3.2.3 预定义类型(值类型)

6、,(1)decimal类型 decimal是C#专门提供的数据类型,有28位有效数字,与浮点类型相比,具有更高的精度。主要适用于金融和货币等领域。 声明并初始化一个decimal类型:,decimal d12.34M;,注意加后缀M,第3章:C#语言基础,20,(2)char类型 声明char类型变量时,字符型数据要放在一对单引号之内: 注意:C/C+中,char类型表示一个8位字符;而C#中char类型包含16位。,3.2.3 预定义类型(值类型),char myChar=a;,第3章:C#语言基础,21,3.2.3 预定义类型(值类型),(2)char类型 注意!一些字符不能直接放在引号中

7、,必须使用转义字符,这些转义字符如下表所示。,知识点滴:char的双重身份: char的存在具有双重身份。它表示字符但却被看作是整数家族的 一部分,它表示的值是一个无符号的整数,范围在065535。它可 以参与计算,并可以隐式转换成int、long、ushort、uint和ulong。,第3章:C#语言基础,22,3.2.3 预定义类型(值类型),转义字符表,第3章:C#语言基础,23,转义字符使用的例子: using System; class Chars Public static void Main() Console.WriteLine(“mt a tnl a b”); 运行结果: m

8、 a t l a b,第3章:C#语言基础,24,3.2.3 预定义类型(引用类型),预定义的引用类型 C#支持两个预定义引用类型:,第3章:C#语言基础,25,3.2.3 预定义类型(引用类型),(1)object类型 C#中,object类型是所有内在的和用户定义的类型中派生而来的类的最终父类型,所有类型都隐含地最终派生于System.Object类。,第3章:C#语言基础,26,3.2.3 预定义类型(引用类型),(1)object类型 object类型可用于两个目的: 1)可以使用object引用绑定任何特定子类型的对象,例如:,int i=20; object o=i;,第3章:C#

9、语言基础,27,3.2.3 预定义类型(引用类型),(1)object类型 2)object类型封装了许多方法,可执行许多基本的一般用途的方法,如Equals()、GetHashCode()、GetType()和ToString()等等。 这些方法将在后面的内容加以介绍。,第3章:C#语言基础,28,3.2.3 预定义类型(引用类型),(2)string类型 字符串变量是包含字母或数字字符的序列,它可以用来存放计算机或查询操作的输入信息。 注意:对组成字符串的字符数没有限制。,第3章:C#语言基础,29,3.2.3 预定义类型(引用类型),(2)string类型 字符串变量声明和连接:,str

10、ing myStr1=“hello”; string myStr2=“world”; string myStr3=myStr1+myStr2;,注:定义的数据要放在一对双引号之内,第3章:C#语言基础,30,3.2.3 预定义类型(引用类型),(2)string类型 字符串中也可以包括转义字符: 结果如右:,知识点滴:string的永恒性 C#中,创建一个string对象后,它所代表的字符集不能修改。当把一个字符串变量赋给另一个字符串时,会得到内存中同一个字符串的两个引用。但是,修改其中一个字符串,注意这会创建一个全新的string对象,而另一个字符串没有改变。,string sample=“

11、hellonworld”;,hello world,第3章:C#语言基础,31,3.2.3 预定义类型(引用类型),(2)string类型 考虑下边的过程:,栈,堆,string s1=“a string”;,string s2=s1;,s1=“another string”;,string s1 s1,string s2 s2,“anothe string”,“a string”,第3章:C#语言基础,32,(2)string类型 verbatim字符串(直译) 通过加前缀,使编译器严格按照原样对其编译。字符串各种格式和转义字符将按原样输出。如:,3.2.3 预定义类型(引用类型),stri

12、ng s=“hellonworld”;,hellonworld,结果输出:,注意:Hello的两边都有3对引号,第3章:C#语言基础,33,3.2.3 预定义类型(引用类型),(2)string类型 verbatim字符串 注意:引号是唯一例外,编译器必须将其转义,例如,生成字符串“Hello”的代码如下: 输出结果为:,string s=“ “ “Hello” ” ”;,“Hello”,注:两对以上转义字符只作为一对处理!,第3章:C#语言基础,34,3.2.3 预定义类型(引用类型),(2)string类型 Unicode Unicode标准为世界上所有书面语言中用到的每个字符分配了唯一的

13、码值(code point),之前的标准为ASCII。 欲了解Unicode详情,登陆网站 www.unicode.org,参照课件和相关书籍熟悉c#中的预定义类型(包括13个值类型和2个引用类型)。,第3章:C#语言基础,35,3.2.4 变量,(1)声明变量 语法: 例如: 该语句用public访问级声明int变量i。,modifiers datatype identifier;,public int i;,注意类的成员!,第3章:C#语言基础,36,3.2.4 变 量,(2)标识符(identifier) 给变量、用户定义的类型和这些类型的成员指定的名字。 C#变量命名的基本规则: 变量

14、名首字符必须是字母、下划线(“_”)或 “”; 其后字符必须是字母、下划线或数字; 切忌使用C#关键字。如要使用,须在标识符前加上“”(如abstract)。,第3章:C#语言基础,37,3.2.4 变量,带红色下划线的变量名是正确的,你做对了吗?,(2)标识符(identifier) 练习:下边哪些变量的命名是正确的 myBigVar 99BottleOfBeer namespace VAR1 _test Its-All-Over,第3章:C#语言基础,38,3.2.4 变 量,(2)标识符(identifier) 命名变量的一些规则: 分配有意义的名称; 命名类和方法时使用Pascal样式

15、,命名变量使用Camel样式。 不要通过大小写的不同来区分变量。,知识点滴:变量命名的两种常用大小写样式 Pascal样式名字中每个单词的第一个单字大写,如AverageSpeed; Camel样式与Pascal样式基本相同,不同的是标识符的第一个单词小写,如averageSpeed.,第3章:C#语言基础,39,(3)初始化变量 变量声明后,必须初始化该变量。,3.2.4 变量,class Test static void Main() int myTest = 8; System.Console.WriteLine(myTest); ,int myTest;,缺什么内容?,第3章:C#语言

16、基础,40,3.2.4 变量,(3)初始化变量 初始值要与声明的类型一致 定义为decimal 初始化为默认为double! 可通过附加后缀指定数值类型,decimal bankBalance=34.50; /错误,decimal bankBalance=34.50M; /正确,第3章:C#语言基础,41,3.2.4 变量,(3)初始化变量 可使用的后缀如下表:,注:后缀并不区分大小写,第3章:C#语言基础,42,3.2.4 变量,(4)变量的作用域 可访问该变量的代码区域。 确定规则: 只要字段所属的类在某个作用域内,其字段也在该作用域内; 局部变量存在于表示声明该变量的块语句结束的封闭花括号之前的作用域内; 在循环或类似的语句中声明的局部变量存在于该循环体内。,第3章:C#语言基础,43,3.2.4 变量,(5)字段和

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号