中国石油大学C#语言基础分析ppt课件.ppt
《中国石油大学C#语言基础分析ppt课件.ppt》由会员分享,可在线阅读,更多相关《中国石油大学C#语言基础分析ppt课件.ppt(89页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、高级程序设计地球科学与技术学院测绘系2015.102前 言n教材:C#程序设计与案例教程,杨树林、胡洁萍编著,清华大学出版社,2007.08n参考书:C#入门经典(第5版),(美)沃森、内格尔等著,齐立波翻译,清华大学出版社,2010.12n上课时间: n周二1、2节,西廊101,第7-10、13-17周n周四3、4节,西廊101,第7-8、10、14、16周n上机时间: n周一1、2节,微601,第9-10、13-17周n周三1、2节,微601,第9、13、15周3课程主要内容 n第1章 C#语言基础n第2章 面向对象程序设计n第3章 GUI程序设计n第4章 图形、图像程序设计n第5章 数据
2、库程序设计n第6章 流和文件n第7章 线程(不讲)n第8章 网络程序设计(不讲)n第9章 ASP.NET(不讲)第第1章章 C#语言基础语言基础5第1章 目录1.1 C#概述1.2 C#语言基础1.3 控制语句1.4 数组1.5 异常处理61.1 C#概述概述n1、.NET概述n2、什么是C#n3、Visual Studio .Net集成开发环境n4、初识C#程序n5、命名空间71.1.1 .NET概述n.NET是微软公司推出跨平台、跨语言开发平台。机器语言汇编语言高级语言硬件依赖高硬件依赖低可移植性低可移植性高可复用性低可复用性高81.1.1 .NET概述FORTRANC.NET(C#)源代
3、码复用二进制码复用Java跨平台跨语言91.1.1 .NET概述n.NET Framework体系结构操作系统公共语言运行时 (CLR).Net Framework 类库 (FCL)101.1.1 .NET概述nCLR和MSIL(CIL)日语汉语翻译英语(中间语言)111.1.1 .NET概述nCLR和MSIL(CIL)121.1.1 .NET概述nCLR和MSIL(CIL) 编译C# | -程序集(.exe、.dllMSIL)、元信息数据信息、可选资源图片、声音) | (Microsoft Intermediate Language 微软中间语言) | | -.NET CLR (Common
4、 Language Runtime 公共语言运行库) | -JIT编译 (Just-In-Time,称为即时编译,仅在需要时才编译MSIL) | 机器代码 131.1.1 .NET概述nCLR和MSIL(CIL)n有了CLR,保证了.NET 中一种语言具有的功能其他语言也都具有。nMicrosoft 中间语言 (MSIL) 由一组特定的指令组成,这些指令指明如何执行代码。nJIT 编译器的主要工作是将普通 MSIL 代码转换为可以直接由 CPU 执行的计算机代码。n系统进程可以轻松读取 MSIL 代码。141.1.1 .NET概述n.NET组成nNET平台包括.NET框架-NET框架(Fram
5、ework)是开发平台的基础n公共语言运行时(CLR)n.NET类库n.NET开发工具等组成部分。n .NET编程语言(C+.NET C#.NET VB.NET)n. Visual Studio.NET集成开发环境15基本框架类.Net Framework.Net Framework 类库类库ASP.NETCLSCLRCTS1.1.1 .NET概述16n.NET版本1.1.1 .NET概述17nCLS(Common Language Specification):不同语言程序之间相互通用必须遵守的规则和限制。nCTS(Common Type System):CLS中对数据类型的规定。 1.1.
6、1 .NET概述181.1.2 什么是C#nC#是微软推出的一种基于.NET框架的、面向对象的高级编程语言。C#由C语言和C+派生而来,继承了其强大的性能,同时又以.NET 框架类库作为基础,拥有类似Visual Basic的快速开发能力。C#由安德斯海尔斯伯格主持开发,微软在2000年发布了这种语言。n原Borland公司的首席研发设计师安德斯海尔斯伯格(Anders Hejlsberg)在微软开发了Visual J+ 1.0,很快的Visual J+由1.1版本升级到6.0版。SUN公司认为Visual J+ 违反了Java开发平台的中立性,对微软提出了诉讼。2000年6月26日微软在奥兰
7、多举行的“职业开发人员技术大会”(PDC 2000)上,发表新的语言C#。C#语言取代了Visual J+,语言本身深受 Java、C 和 C+ 的影响。191.1.2 什么是C#n版本 C#版本变化和.Net Framework版本变化一样,新版本总是在旧版本基础上增加了新的功能或增强了已有功能。201.1.2 什么是C#n语言特征,相对于C和C+,C#在许多方面进行了限制和增强:n指针(Pointer)只能被用于不安全模式。大多数对象访问通过安全的引用实现,以避免无效的调用。n对象不需要被显式释放,代替为当不存在被引用时通过垃圾回收器回收。n只允许单一继承(single inheritan
8、ce),但是一个类可以实现多个接口(interfaces)。nC#比C+更加类型安全。默认的安全转换是隐含转换,例如由短整型转换为长整型和从派生类转换为基类。而布尔型同整型,及枚举型同整型不允许隐含转换。n数组声明语法不同(int a = new int5 而不是 int a5)。n属性支持,使用类似访问成员的方式调用。211.1.3 Visual Studio.NET集成开发环境nVisual Studio集成开发工具不同版本22Microsoft Visual Studio起始页23新建项目对话框24n代码编辑器,用于编写源代码。n“工具箱”,用于使用鼠标迅速开发可视化界面。n解决方案资源
9、管理器 ,用于查看和管理项目文件和设置。n项目设计器 ,用于配置编译器选项、部署路径、资源及更多其他内容。n属性窗口,用于配置用户界面中控件的属性和事件。nVisual Studio 调试器,用于对程序进行测试。n类视图,用于根据类型(而不是文件)在源代码中导航。n对象浏览器,用于查看.NET Framework 程序集和 COM 对象中可用的方法和类。25Visual Studio.NET集成开发环境26属性窗口 属性描述控件选择事件图标属性图标属性名属性值按字母排序271.1.4 初识C#程序【例例1-1】一个简单的控制台程序。nC#语言使用类来组织和包装代码,所有可执行代码都必须包含在类
10、中。nusing指令用于声明程序中使用的系统类所在的命名空间。 如:Console类包含在System命名空间中。/声明系统命名空间using System;using System.Collections.Generic;using System.Linq;using System.Text;/用户自定义命名空间namespace Exam_1_1 / / 程序开始类:Program / class Program / / 应用程序的主入口方法: Main / / static void Main(string args) Console.WriteLine(请输入你的名字:); strin
11、g username = Console.ReadLine(); Console.WriteLine(欢迎0进入C#世界!, username); 281.1.4 初识C#程序【例例1-1】一个简单的控制台程序。n注释方式:n单行注释 / 注释内容n多行注释 /* 注释第1行注释第n行 */n文档注释 / 文档注释 即XML注释,将文档注释的内容转为XML文档保存。/声明系统命名空间using System;using System.Collections.Generic;using System.Linq;using System.Text;/用户自定义命名空间namespace Exam_
12、1_1 / / 程序开始类:Program / class Program / / 应用程序的主入口方法: Main / / static void Main(string args) Console.WriteLine(请输入你的名字:); string username = Console.ReadLine(); Console.WriteLine(欢迎0进入C#世界!, username); 291.1.4 初识C#程序【例例1-1】一个简单的控制台程序。nMain方法:nMain 方法是 C# 控制台应用程序或窗口应用程序的入口点,程序控制流在该处开始和结束。nMain 在类或结构的内
13、部声明。Main 方法必须是静态的,且不应该是公用的(默认访问级别是 private)但不要求所在类或结构是静态的。nMain 的返回类型有两种:void 或 int。nMain 方法可以包含命令行参数 string ,也可以不具有这样的形参。301.1.4 初识C#程序【例例1-1】一个简单的控制台程序。n控制台输入、输出n使用.NET Framework中 System 命名空间中的Console类提供的输入输出方法。n输入:Console.Read(); /读取一个字符 Console.ReadLine(); /读取一行字符n输出:Console.Write(); /以文本形式输出 Co
14、nsole.WriteLine(); /以文本形式输出并换行 若输出若干变量值,则用 0 表示第一项,1 表示第二项,依此类推,如:int year = 1066; string battle = Battle of Hastings; Console.WriteLine(The 0 took place in 1., battle, year); 311.1.4 初识C#程序【例例1-2】一个图形界面程序。 设计一个程序,界面上用一个文本框输入姓名,单击“确定”按钮后,在文本框中显示“欢迎XXX进入C#世界!”,运行结果如下图所示。321.1.5 命名空间n命名空间类似于文件系统中的文件夹,
15、可以看作相关类的一个容器。n命名空间分为两类:用户定义的命名空间、系统定义的命名空间。n系统命名空间:NET Framework 本身有八十多个命名空间,每个命名空间中有上千个类。 System.Drawing:提供了GDI+基本绘图功能; System.IO:提供数据文件读写等功能; System.Collections:提供了列表、队列等集合操作n用户定义的命名空间是在代码中定义的命名空间。 331.1.5 命名空间namespace 命名空间名称 用户代码n命名空间可以嵌套n命名空间的使用n使用using指令能够引用给定的命名空间或创建命名空间的别名(using 别名)。 using 别
16、名 = 类或命名空间名;如:using System; using System.Drawing; using StatisticalData;namespace StatisticalData class FileHandling public void Load() / code to load statistical data namespace Images class FileHandling public void Load() / code to load an image file class Program static void Main() StatisticalData
17、.FileHandling data = new StatisticalData.FileHandling(); data.Load(); Images.FileHandling image = new Images.FileHandling(); image.Load(); 34命名空间命名空间类的描述类的描述System定义通常使用的数据类型和数据转换的基本.NET类。System.Collections定义列表、队列、位数组合字符串表。System.Data定义ADO.NET数据库结构。System.Drawing提供对基本图形功能的访问。System.IO允许读写数据列和文件。Syst
18、em.Net提供对Windows网络功能的访问。System.Net.Sockets提供对Windows套接字的访问。1.1.5 命名空间n系统定义的命名空间351.2 C#语言基础 n1、基本编码规则n2、数据类型n3、数据类型转换n4、常量与变量n5、装箱与拆箱n6、运算符361.2.1 基本编码规则nC#语言中,标识符是以字母、下划线(_)或开始的一个字符序列,后面可以跟字母、下划线、数字。C#语言区分大小写。n具有专门的意义和用途,不能当作一般的标识符使用,这些标识符称为保留字或关键字。 n书写规则书写规则n每行语句以 ; 结尾。n空行和缩进被忽略。n多条语句可以处于同一行,之间用分号
19、分隔即可。n注释:有3种方式。371.2.2 数据类型n数据类型分类1:可分为内置类型和构造类型。数据类型数据类型内置类型内置类型构造类型构造类型(自定义类型)(自定义类型)objectstringbyte, sbyteshort, ushortint, uintlong, ulongfloat, double, decimalboolchar数组结构struct枚举enum类class接口interface委托delegate381.2.2 数据类型n数据类型分类2:按数据的存储方式,可分为值类型和引用类型。数据类型数据类型值类型值类型引用类型引用类型数值类型bool, char结构枚举st
20、ring数组类接口委托说明:说明:1、所有的数据类型是以类的形、所有的数据类型是以类的形式组织的;式组织的;2、数据类型的根基类是、数据类型的根基类是object类;类;3、定义、定义值类型变量值类型变量时,直接使时,直接使用即可;定义用即可;定义引用型变量引用型变量时,时,需先使用需先使用new分配内存,但分配内存,但string类型除外。类型除外。391.2.2 数据类型n类型的层次结构称为通用类型系统CTS(Common Type System)401.2.2 数据类型n类型的层次结构称为通用类型系统CTS(Common Type System)41n值类型值类型n各种值类型总是含有该类
21、型的一个值。每当把一个值赋给一个值类型时,该值实际上被拷贝了。n相比,对于引用类型,仅是引用被拷贝了,而实际的值仍然保留在原来的内存位置。nC#的值类型可以归类如下:n 内置类型(Simple type)n 枚举类型(Enumeration type)n 结构类型(Structure type)1.2.2 数据类型421.2.2 数据类型n值类型值类型内置类型内置类型整数整数431.2.2 数据类型n值类型值类型内置类型内置类型实数实数n值类型值类型内置类型内置类型字符型字符型nUnicode 字符是 16 位字符,用于表示世界上大多数已知的书面语言。441.2.2 数据类型n值类型值类型内置
22、类型内置类型字符型字符型n值类型值类型内置类型内置类型布尔型布尔型n布尔型只有true、false两个值,且不对应于任何整数值。char chars = new char4;chars0 = X; / Character literal chars1 = x0058; / Hexadecimal chars2 = (char)88; / Cast from integral type chars3 = u0058; / Unicode foreach (char c in chars) Console.Write(c + ); / Output: X X X X 451.2.2 数据类型n值类
23、型值类型枚举类型枚举类型n默认情况下,第一个枚举数的值为 0,后面每个枚举数的值依次递增 1。 enum Days Sat, Sun, Mon, Tue, Wed, Thu, Fri; n也可以更改默认值。 enum Days Sat=1, Sun, Mon, Tue, Wed, Thu, Fri; nenum和整型之间的转换需要用显式类型转换来完成,即使用强制转换。 int x = (int)Days.Sun; 或 x = Convert.ToInt32(Days.Sun); 注:Convert可以转换字符串。【例1-3】定义一个职称枚举类型,输出类型中所有枚举常量。461.2.2 数据类型
24、n值类型值类型结构类型结构类型n用 struct 关键字定义的,如: public struct PostalAddress / Fields, properties, methods and events go here. n结构与类共享大多数相同的语法。但结构是值类型,类是引用类型,且结构不支持继承。 471.2.2 数据类型n值类型值类型结构类型结构类型【例1-4】结构与类的比较(即值类型与引用类型的比较)。public struct MyStruct public int a; public void Output() Console.WriteLine(结构成员 a = 0, a);
25、 class Program static void Main() MyStruct x; x.a = 100; x.Output(); 481.2.2 数据类型n引用类型引用类型n和值类型相比,引用类型不存储它们所代表的实际数据,但它们存储实际数据的地址(引用)。n引用类型包括:object、string、数组、类、接口、委托等。其内容在后续的章节中介绍。nobject类是 .net 类型层次结构的根,所有类型(用户定义类型、引用类型和值类型)均是直接或间接从 object 继承的。因为它是所有类型的基类,所以可把任何类型的值赋给它,例如: object theObj = 123; 即:装箱
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中国 石油大学 C# 语言 基础 分析 ppt 课件
限制150内