第一章C#简介课程目标•.NETFramework的介绍•公共语言运行时•面向.NET的全新开发语言—C#•VisualStudio2005.NET集成开发环境•VisualStudio2005.NET各窗口介绍•支持当前二十多种主流编程语言.NETFramework简介.NETFramework类似于JVM.NETFramework两个主要组件:公共语言运行时(CLR)统一的类库集.NET的类库:线程文件输入/输出(I/O)数据库支持XML解析数据结构……Microsoft.NETFramework的体系结构操作系统公共语言运行时(CLR)VC++.NetC#VB.NetVJ#….NetFramework类库(FCL)硬件.NETFramework的组件基本框架类WebFormsWebServicesWinFormsADO.Net和XML类.NetFramework.NetFramework类库ASP.NETCLSCLRCTS执行.NET程序-两次编译MSIL+元数据机器代码代码被执行CLR第一次编译第二次编译.NET程序被编译两次,第一次编译很慢,而第二次编译较快!语言编译器.NET源代码面向.NET的全新开发语言—C#•C#是一种现代的面向对象的程序开发语言。它使得程序员能够在新的微软.NET平台上快速开发种类丰富的应用程序。•C#2.0的发布,C#为开发人员在1.0基础上又提供了一些新的功能,如下表所示:功能描述泛型C#2.0中添加了一些泛型类型。使开发人员能够实现程度很高的代码重用,获得更高的集合类性能。泛型类型只存在arity上的不同。也可以将参数强制为特定的类型。迭代器迭代器使得规定foreach循环将如何循环访问集合的内容变得更加容易。分部类分部类型定义允许将单个类(比如某个类)拆分为多个文件。VisualStudio2005窗体设计器使用此功能将它生成的代码与用户代码分离。可空类型可空类型允许变量包含未定义的值。在使用数据库和其他可能包含未含有具体值的元素的数据结构时,可以使用可空类型。匿名方法null可以将代码块作为参数来传递。在本应使用委托的任何地方,都可以使用代码块来取代,不需要定义新的方法。命名空间别名限定符命名空间别名限定符(::)对访问命名空间成员提供了更多控制。global::别名允许访问可能被代码中的实体隐藏的根命名空间。功能描述静态类若要声明那些包含不能实例化的静态方法的类,静态类就是一种安全而便利的方式。C#1.2版要求将类构造函数定义为私有的,以防止类被实例化。(外部程序集别名通过extern关键字的这种扩展用法引用包含在同一程序集中的同一组件的不同版本。属性访问器可访问性可以为属性的get和set访问器定义不同级别的可访问性。面向.NET的全新开发语言—C#•C#3.0的发布,C#为开发人员在2.0基础上又提供了一些新的功能,如下表所示:功能描述隐含类型局部变量var只是语言层面的东西,编译器会在编译的时候通过类型推断把变量换成真正的类型。扩展方法扩展方法是给现有类型添加一个方法;扩展方法是通过指定关键字this修饰方法的第一个参数;扩展方法必须声明在静态类中;扩展方法要通用对象来调用;扩展方法可以带参数。对象与集合初始化器可以在创建对象时向对象的任何可访问的字段或属性分配值,而无需显式调用构造函数。匿名类型(new用的次数少)匿名类型提供了一种方便的方法,可用来将一组只读属性封装到单个对象中,而无需首先显式定义一个类型。Lambda表达式Lambda表达式是一个匿名函数,它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型查询表达式LinQ在编写程序时可以得到很好的编译时语法检查,丰富的元数据,智能感知、静态类型等强类型语言的好处。并且它同时还使得查询可以方便地对内存中的信息进行查询而不仅仅只是外部数据源。表达式树表达式树允许将Lambda表达式表现为数据结构而不是可执行代码。表达式树是Lambda表达式的一种高效的内存中数据表现形式,并且使得表达式的结构变得透明和明显VisualStudio.NET2008的功能•VisualStudio.NET2008是一套完整的开发工具,用于构建高性能的桌面应用程序、XMLWebServices、移动应用程序和ASPWeb应用程序•VS.NETIDE的主要功能在于:–自定义IDE–选项卡式窗口管理–VisualStudio.NET中的窗口VS.NET入门7-1起始页VisualStudio2005.NETIDEVS.NET入门7-2定位按钮选项卡式文档菜单栏VS.NET入门7-3视图工具栏VS.NET2008环境设置•在VS.NET中,设置项可用于:改变窗口的默认外观及其布局–指定用来保存项目的默认位置–指定常用命令的快捷键–确定“任务列表”和“解决方案资源管理器”的默认行为–确定在生成项目或项目的解决方案时是否自动保存已更改的文件创建“HelloWorld”应用程序3-1•单击“开始”“程序”“MicrosoftVisualStudio.NET2003”“MicrosoftVisualStudio.NET2003”•此时将打开VS.NET2003的起始页•要创建C#控制台应用程序,请从菜单中选择“文件”“新建”“项目”。此时将打开“新建项目”窗口•选择“VisualC#项目”作为项目类型,选择“控制台应用程序”作为模板创建“HelloWorld”应用程序3-2C#模板Console.WriteLine(HelloWorld);替换创建“HelloWorld”应用程序3-3•HelloWorld.csproj•App.ico•AssemblyInfo.cs•Class1.cs“HelloWorld”应用程序文件编译和执行C#应用程序3-1•要生成C#项目,请从菜单中选择“生成”“生成解决方案”•该过程将编译项目中包括的所有文件,编译结果显示在“输出”窗口中•如果结果显示“生成:1已成功,0已失败,0已跳过”,则说明已经成功生成,然后即可交付该应用程序编译和执行C#应用程序3-2编译和执行C#应用程序3-3•要运行刚才生成的应用程序,请从菜单中选择“调试”“开始执行(不调试)”•输出结果显示在VS.NET控制台窗口中C#应用程序文件夹结构•VisualStudio.NET2005创建一个与项目同名的文件夹,此处为“HelloWorld”•该文件夹包含项目文件“HelloWorld.csproj”和其他关联文件•每个新项目都创建了bin和obj两个文件夹。•这两个文件夹下都有一个Debug子目录,其中包含可执行文件HelloWorld.exe•在“解决方案资源管理器”中启用“显示所有文件”选项,可查看“HelloWorld”项目的结构总结•.NETFramework的介绍•Microsoft.NET全新框架平台•公共语言运行时•面向.NET的全新开发语言—C#•VisualStudio.NET2008是用于创建、编写、运行和调试程序的集成开发环境。•VS.NET中的程序组成项目和解决方案。项目是一组相关的文件,解决方案则是一组相关的项目•“动态帮助”窗口为用户提供了与当前光标所在位置相关的文章