
清华大学原版CSharp学习资料第一章CSharp简介.ppt
29页第一章第一章C# #简介简介课程目标课程目标q.NET Framework的介绍的介绍qMicrosoft.NET全新框架平台全新框架平台q公共语言运行时公共语言运行时q面向面向.NET的全新开发语言的全新开发语言—C#qVisual Studio 2005.NET 集成开发环境集成开发环境qVisual Studio 2005.NET 各窗口介绍各窗口介绍体验体验如果抛开一切非技术方面的因素,如果抛开一切非技术方面的因素,C# 无疑无疑是这个星球上有史以来最好的编程语言,是这个星球上有史以来最好的编程语言,它几乎集中了所有关于软件开发和软件工它几乎集中了所有关于软件开发和软件工程研究的最新成果:程研究的最新成果:q面向对象面向对象q类型安全类型安全q组件技术组件技术q自动内存管理自动内存管理q跨平台异常处理等跨平台异常处理等Internet 的转变的转变Web 服务器Web 服务器Web 服务器Web 服务器Web 服务器Web 服务器组合体组合体各自为政的各自为政的 Web 站点站点站点、服务和设备彼此协作,共同提供丰富的用户体验应用程序开发的演变应用程序开发的演变Internet任何人在任何位置都可以使用应用程序软件作为服务提供资源丰富,基于应用程序资源丰富,基于应用程序来控制来控制推向市场时间短更高的开发效率更高质量软件.NET - -演变的结果演变的结果 融合计算和通讯形成组合体,而不是孤岛!分布式计算本地进行软件成为服务应用程序可以由任何人在任何地方使用u用户数据存放在网络上 - 可以随时随地进行访问u.NET - 以 Internet 为中心的一种全新的平台u创建可以通过任何浏览器、任何设备访问的应用程序u.NET 应用程序利用了 Internet 的功能u可以从任何 .NET 设备访问数据.NET - 以互联网为核心以互联网为核心.NET 支持的语言支持的语言.NET Framework 简介简介q.NET Framework类似于JVMq.NET Framework 两个主要组件:q公共语言运行时 (CLR)q统一的类库集q.NET的类库:q线程q文件输入/输出 (I/O)q数据库支持qXML 解析q数据结构q……Microsoft. NET Framework 的体系结构的体系结构.NET Framework 的组件的组件.Net Framework.Net Framework.Net Framework 类库类库类库类库ASP.NETCLRCLR执行执行 .NET 程序-两次编译程序-两次编译MSIL+元数据机器代码代码被执行CLR第一次编译第一次编译第二次编译第二次编译语言语言编译器编译器.NET 源代码公共语言运行库公共语言运行库CLR.NET 源代码MSIL+元数据机器代码代码被执行管理内存易于设计组件和应用程序,其对象可以跨语言互动跨语言集成(特别是跨语言继承)一次编译,就可运行在支持运行库的任何 CPU 和操作系统上语言语言编译器编译器q有了有了CLR,, 保证了保证了 .NET 中一种语言具有的中一种语言具有的功能功能 其他语言也都具有其他语言也都具有qMicrosoft 中间语言中间语言 (MSIL) 由一组特定的指由一组特定的指令组成,这些指令指明如何执行代码令组成,这些指令指明如何执行代码qJIT 编译器的主要工作是将普通编译器的主要工作是将普通 MSIL 代码代码转换转换 为可以直接由为可以直接由 CPU 执行的计算机代码执行的计算机代码q验证进程可以轻松读取验证进程可以轻松读取 MSIL 代码代码CLR和和MSIL面向面向.NET的全新开发语言的全新开发语言 — C#qC#是一种现代的面向对象的程序开发语言。
它使得程序员能够在新的微是一种现代的面向对象的程序开发语言它使得程序员能够在新的微软软.NET平台上快速开发种类丰富的应用程序平台上快速开发种类丰富的应用程序qC# 2.0的发布,的发布,C#为开发人员在为开发人员在1.0基础上又提供了一些新的功能,如下基础上又提供了一些新的功能,如下表所示:表所示:功 能描 述泛型泛型 C#2.0中添加了一些泛型中添加了一些泛型类型使开发人人员能能够实现程度很高的代程度很高的代码重用,重用,获得更高的集合得更高的集合类性能泛型性能泛型类型只存在型只存在arity上的不同上的不同也可以将参数也可以将参数强强制制为特定的特定的类型迭代器迭代器 迭代器使得迭代器使得规定定 foreach 循循环将如何循将如何循环访问集合的内容集合的内容变得更加得更加容易分部分部类 分部分部类型定型定义允允许将将单个个类(比如某个(比如某个类)拆分)拆分为多个文件多个文件Visual Studio 2005窗体窗体设计器使用此功能将它生成的代器使用此功能将它生成的代码与用与用户代代码分离可空可空类型型 可空可空类型允型允许变量包含未定量包含未定义的的值。
在使用数据在使用数据库和其他可能包和其他可能包含未含有具体含未含有具体值的元素的数据的元素的数据结构构时,可以使用可空,可以使用可空类型匿名方法匿名方法 可以将代可以将代码块作作为参数来参数来传递在本应使用委托的任何地方,都使用委托的任何地方,都可以使用代可以使用代码块来取代,不需要定来取代,不需要定义新的方法新的方法命名空命名空间别名名限定符限定符命名空命名空间别名限定符(::)名限定符(::)对访问命名空命名空间成成员提供了更多控制提供了更多控制global::::别名允名允许访问可能被代可能被代码中的中的实体体隐藏的根命名空藏的根命名空间功 能描 述静静态类若要声明那些包含不能若要声明那些包含不能实例化的静例化的静态方法的方法的类,静,静态类就是一种安全而就是一种安全而便利的方式便利的方式C# 1.2版要求将版要求将类构造函数定构造函数定义为私有的,以防止私有的,以防止类被被实例化外部程序集外部程序集别名名通通过 extern关关键字的字的这种种扩展用法引用包含在同一程序集中的同一展用法引用包含在同一程序集中的同一组件件的不同版本的不同版本属性属性访问器可器可访问性性可以可以为属性的属性的get和和set访问器定器定义不同不同级别的可的可访问性。
性委托中的委托中的协变和和逆逆变传递给委托的方法在返回委托的方法在返回类型和参数方面可以具有更大的灵活性型和参数方面可以具有更大的灵活性声明、声明、实例化和例化和使用委托使用委托方法方法组转换为声明委托提供了一种更声明委托提供了一种更简单的的语法固定大小的固定大小的缓冲冲区区在不安全的代在不安全的代码块中,可以声明包含嵌入数中,可以声明包含嵌入数组的固定大小的固定大小结构友元程序集友元程序集程序集可以提供程序集可以提供对其他程序集的非公共其他程序集的非公共类型的型的访问内内联警告控制警告控制#pragma警告指令可用于禁用和启用某些警告指令可用于禁用和启用某些编译器警告volatilevolatile 关关键字字应用于用于IntPtr和和UIntPtrVisual Studio .NET 2005 的功能的功能 qVisual Studio .NET 2005是一套完整的开发是一套完整的开发工具工具,用于构建高性能的桌面应用程序、,用于构建高性能的桌面应用程序、XML Web Services、移动应用程序和、移动应用程序和 ASP Web 应用程序应用程序qVS.NET IDE 的主要功能在于的主要功能在于:: q自定义自定义 IDEq选项卡式窗口管理选项卡式窗口管理qVisual Studio .NET 中的窗口中的窗口VS.NET 入门入门 7-1起始页Visual StudioVisual Studio20052005 .NET IDE .NET IDEVS.NET 入门入门 7-2定位按钮定位按钮 选项卡式文档选项卡式文档 菜单栏菜单栏VS.NET 入门入门 7-3视图工具栏工具栏VS.NET 2005 环境设置环境设置q在在 VS.NET 中,设置项可用于:中,设置项可用于:改变窗口改变窗口的默认外观及其布局的默认外观及其布局 q指定用来保存项目的默认位置指定用来保存项目的默认位置 q指定常用命令的快捷键指定常用命令的快捷键 q确定确定““任务列表任务列表””和和““解决方案资源管理器解决方案资源管理器””的默认行为的默认行为 q确定在生成项目或项目的解决方案时是否自动确定在生成项目或项目的解决方案时是否自动保存已更改的文件保存已更改的文件 创建创建““Hello World””应用程序应用程序3-1q单击单击“开始开始”“程序程序”“Microsoft Visual Studio .NET 2003”“Microsoft Visual Studio .NET 2003”q此时将打开此时将打开 VS.NET 2003 的起始页的起始页q要创建要创建 C# 控制台应用程序,请从菜单中选控制台应用程序,请从菜单中选择择“文件文件”“新建新建”“项目项目”。
此时将打此时将打开开“新建项目新建项目”窗口窗口q选择选择“Visual C# 项目项目”作为项目类型,选作为项目类型,选择择“控制台应用程序控制台应用程序”作为模板作为模板 创建创建““Hello World””应用程序应用程序3-2C# 模板Console.WriteLine("Hello World");替换替换替换替换创建创建““Hello World””应用程序应用程序3-3qHello World.csprojqApp.icoqAssemblyInfo.csqClass1.cs““Hello World””应用程序文件应用程序文件编译和执行编译和执行 C# 应用程序应用程序 3-1q要生成要生成 C# 项目,请从菜单中选择项目,请从菜单中选择““生成生成””““生成解决方案生成解决方案””q该过程将编译项目中包括的所有文件,编该过程将编译项目中包括的所有文件,编译结果显示在译结果显示在““输出输出””窗口中窗口中 q如果结果显示如果结果显示““生成生成: : 1 已成功已成功, , 0 已失败已失败, , 0 已跳过已跳过””,则说明已经成功生成,然后,则说明已经成功生成,然后即可交付该应用程序即可交付该应用程序编译和执行编译和执行 C# 应用程序应用程序 3-2编译和执行编译和执行 C# 应用程序应用程序 3-3q要运行刚才生成的应用程序,请从菜单中要运行刚才生成的应用程序,请从菜单中选择选择““调试调试””““开始执行开始执行( (不调试不调试)”)”q输出结果显示在输出结果显示在 VS.NET 控制台窗口中控制台窗口中C# 应用程序文件夹结构应用程序文件夹结构qVisual Studio .NET 2005 创建一个与项目创建一个与项目同名的文件夹,此处为同名的文件夹,此处为““Hello World” ” q该文件夹包含项目文件该文件夹包含项目文件““Hello World.csproj””和其他关联文件和其他关联文件 q每个新项目都创建了每个新项目都创建了 bin 和和 obj 两个文件两个文件夹。
夹 q这两个文件夹下都有一个这两个文件夹下都有一个 Debug 子目录,子目录,其中包含可执行文件其中包含可执行文件 HelloWorld.exe q在在““解决方案资源管理器解决方案资源管理器””中启用中启用““显示显示所有文件所有文件””选项,可查看选项,可查看““Hello World””项目的结构项目的结构 总结总结q.NET Framework的介绍的介绍qMicrosoft.NET全新框架平台全新框架平台q公共语言运行时公共语言运行时q面向面向.NET的全新开发语言的全新开发语言—C#qVisual Studio .NET 2003 是是用用于于创建建、、编写写、、运运行和行和调试程序的集成开程序的集成开发环境 qVS.NET 中中的的程程序序组组成成项项目目和和解解决决方方案案项项目目是是一组相关的文件,解决方案则是一组相关的项目一组相关的文件,解决方案则是一组相关的项目 q“动动态态帮帮助助”窗窗口口为为用用户户提提供供了了与与当当前前光光标标所所在在位置相关的文章位置相关的文章。
