1、第一章,C#基础,课程目标,了解C#简介 理解.NET平台特征和组件 掌握C#基础知识 面向对象设计在C#中的实现和表达 命名空间及基类库 C#中的属性、索引器、委托、事件 C#中的文件处理,本章目标,了解C#语言的特点 了解.NET Framework 的结构 理解.NET Framework 的基本概念 CLR:公共语言运行库 JIT:及时编译器 CTS:通用类型系统 MSIL:微软中间语言 掌握IDE(VS2005)的使用,什么是C#,名称:C#全称为C sharp,从C/C+演变而来,保留了C家族的名称,#为音乐标记,用于表示声调并读作“Sharp”,因此读作”C Sharp”. 概念
2、:是一种面向对象的编程语言,它是为生成在 .NET Framework 上运行的多种应用程序而设计的 。,有什么特点?,简洁的语法 C#的代码在.NET框架提供的“可操纵”环境下运行,不允许直接地内存操作。它所带来的最大的特色是没有了指针。与此相关的是,那些在C+中被疯狂使用的操作符(例如:“:”、“-”和“.,”)已经不再出现。 精心地面向对象设计 C#具有面向对象的语言所应有的一切特性:封装、继承与多态性 ,在C#的类型系统中,每种类型都可以看作一个对象。C#提供了一个叫做装箱(boxing)与拆箱(unboxing)的机制来完成这种操作,而不给使用者带来麻烦,C#只允许单继承,即一个类不
3、会有多个基类,从而避免了类型定义的混乱。,C#特点,与Web的紧密结合 .NET中新的应用程序开发模型意味着越来越多的解决方案需要与Web标准相统一 ,比如Web Server。由于有了Web服务框架的帮助,对程序员来说,网络服务看起来就象是C#的本地对象。程序员们能够利用他们已有的面向对象的知识与技巧开发Web服务 完整的安全性与错误处理 .NET运行库提供了代码访问安全特性,它允许管理员和用户根据代码的ID来配置安全等级。在缺省情况下,从Internet和Intranet下载的代码都不允许访问任何本地文件和资源 。.NET平台提供的垃圾收集器(Garbage Collection,GC)将
4、负责资源的释放与对象撤销时的内存清理工作 变量是类型安全的。C#中不能使用未初始化的变量,对象的成员变量由编译器负责将其置为零,当局部变量未经初始化而被使用时,编译器将做出提醒,C#特点,版本处理技术 C#提供内置的版本支持来减少开发费用,使用C#将会使开发人员更加轻易地开发和维护各种商业用户。升级软件系统中的组件(模块)是一件容易产生错误的工作。在代码修改过程中可能对现存的软件产生影响,很有可能导致程序的崩溃。为了帮助开发人员处理这些问题,C#在语言中内置了版本控制功能。例如:函数重载必须被显式声明,而不会象在C+或java中经常发生的那样不经意地被进行,这可以防止代码级错误和保留版本化的特
5、性。另一个相关的特性是接口和接口继承的支持。这些特性可以保证复杂的软件可以被方便地开发和升级 灵活性与兼容性 在简化语法的同时,C#并没有失去灵活性。尽管它不是一种无限制语言,比如:它不能用来开发硬件驱动程序,在默认的状态下没有指针等等 ,C#不支持类的多继承,但是通过对接口的继承,你将获得这一功能 。,C#能做什么呢?,Windows应用程序 这些应用程序如Microsoft Office,有我们很熟悉的Windows外观和操作方式,使用.NET Framework的Windows Forms模块就可以生成这种应用程序。Windows Form模块是一个控件库,其中的控件(例如按钮、工具栏、
6、菜单等)可以用于建立Windows用户界面(UI)。 Web应用程序 这些是Web页,可以通过任何Web浏览器查看。.NET Framework包括一个动态生成Web内容的强大系统,允许个性化、实现安全性等。这个系统叫作Active Server Pages.NET (ASP.NET),我们可以使用C#通过Web Forms 创建ASP.NET应用程序。 Web服务 这是创建各种分布式应用程序的新方式,使用Web服务可以通过Internet虚拟交换数据。无论使用什么语言创建Web服务,也无论Web服务驻留在什么系统上,都使用一样简单的语法。,C#运行环境?,.NET Framework类似于j
7、ava虚拟机(JVM) .NET Framework 两个主要组件: 公共语言运行时 (CLR-Common Language Runtime ) 统一的类库集(FCL ) .NET的类库: 线程 文件输入/输出 (I/O) 数据库支持 XML 解析 数据结构,.NET Framework 简介,Microsoft. NET Framework 的体系结构,操作系统,公共语言运行时 (CLR),VC+.Net,C#,VB.Net,VJ#,.Net Framework 类库 (FCL),硬件,.NET Framework 的组件,基本框架类,WinForms,ADO.Net 和 XML 类,.N
8、et Framework,.Net Framework 类库,ASP.NET,CLS,CLR,CTS,通用语言规范(Common Language Specification,通用类型系统(Common Type System),模拟CLR和MSIL,日语,汉语,翻译,英语(中间语言-IL),什么是MSIL? Microsoft中间语言: Microsoft Intermediate Language,相似点:,计算机编程语言,Visual Basic,C+,代码,代码,可执行代码,可执行代码,操作系统服务,(内存管理和文件 I/O),MSVBVM60.DLL,MSVCRT.DLL,为了与一套
9、运行时服务配合工作, .NET Framework 提供了公共语言运行时 (CLR),CLR 和 MSIL 2-1,需要公共运行时环境,有了CLR, 保证了 .NET 中一种语言具有的功能其他语言也都具有 Microsoft 中间语言 (MSIL) 由一组特定的指令组成,这些指令指明如何执行代码 JIT 编译器(Just In Time Compiler )的主要工作是将普通 MSIL 代码转换 为可以直接由 CPU 执行的计算机代码 验证进程可以轻松读取 MSIL 代码,CLR和MSIL 2-2,CLR在 .NET Framework 里起到什么样的作用?,CLS和CTS,通用语言规范 (C
10、LS) 规定所有 .NET 语言都应遵循的规则 生成可与其他语言互操作的应用程序 公共类型系统 (CTS) 通常 包含标准数据类型 包含准则集,CLS、CTS 和 MSIL 紧密配合以实现语言互操作性,C#代码是如何运行的?,C#源码,包含IL代码的 程序集,CLR组织,垃圾收集器,Com交互服务,JIT编译 许可的安全授权 内存类型检查 创建应用程序域,进程应用程序域 执行代码,编译,编译,执行,如何开发C#应用程序?,V是一个开发C#应用程序的集成开发工具。主要功能有: 共享IDE(集成开发环境) 窗口管理器 设计器 项目类型 可视化数据库工具 。,/这是用 C# 编写的一个简单的 Hel
11、loWorld 程序 using System; namespace Notepad class HelloWorldpublic static void Main()Console.WriteLine(“Hello World“); ,声明 HelloWorld 类,描述代码的注释,演示Hello World 程序,程序入口点, Main 的返回类型为 void,控制台类的 WriteLine() 方法用于显示输出结果,导入 System 命名空间,声明命名空间 Notepad,将文件保存为 HelloWorld.cs,Compiling and executing a .NET conso
12、le program,执行 HelloWorld,配置命令提示符以执行 .NET 控制台程序,VS2003安装,Visual Studio .NET 2003 的功能,Visual Studio .NET 2003是一套完整的开发工具,用于构建高性能的桌面应用程序、XML Web Services、移动应用程序和 ASP Web 应用程序 VS.NET IDE 的主要功能在于: 自定义 IDE 选项卡式窗口管理 Visual Studio .NET 中的窗口,VS.NET 入门 7-1,Visual Studio .NET IDE,起始页,VS.NET 入门 7-2,定位按钮,选项卡式文档,菜
13、单栏,VS.NET 入门 7-3,视图,工具栏,VS.NET 入门 7-4,解决方案资源管理器,类视图,VS.NET 入门 7-5,视图,“属性”窗口,VS.NET 入门 7-6,服务器资源管理器,视图,VS.NET 入门 7-7,任务列表,动态帮助,工具箱,VS.NET 2003 环境设置,在 VS.NET 中,设置项可用于:改变窗口的默认外观及其布局 指定用来保存项目的默认位置 指定常用命令的快捷键 确定“任务列表”和“解决方案资源管理器”的默认行为 确定在生成项目或项目的解决方案时是否自动保存已更改的文件,创建“Hello World”应用程序3-1,单击“开始”“程序”“Microso
14、ft Visual Studio .NET 2003”“Microsoft Visual Studio .NET 2003” 此时将打开 VS.NET 2003 的起始页 要创建 C# 控制台应用程序,请从菜单中选择“文件”“新建”“项目”。此时将打开“新建项目”窗口 选择“Visual C# 项目”作为项目类型,选择“控制台应用程序”作为模板,创建“Hello World”应用程序3-2,C# 模板,Console.WriteLine(“Hello World“);,替换,创建“Hello World”应用程序3-3,Hello World.csproj App.ico AssemblyIn
15、fo.cs Class1.cs,“Hello World”应用程序文件,编译和执行 C# 应用程序 3-1,要生成 C# 项目,请从菜单中选择“生成”“生成解决方案” 该过程将编译项目中包括的所有文件,编译结果显示在“输出”窗口中 如果结果显示“生成: 1 已成功, 0 已失败, 0 已跳过”,则说明已经成功生成,然后即可交付该应用程序,编译和执行 C# 应用程序 3-2,编译和执行 C# 应用程序 3-3,要运行刚才生成的应用程序,请从菜单中选择“调试”“开始执行(不调试)” 输出结果显示在 VS.NET 控制台窗口中,C# 应用程序文件夹结构,Visual Studio .NET 2003
16、 创建一个与项目同名的文件夹,此处为“Hello World” 该文件夹包含项目文件“Hello World.csproj”和其他关联文件 每个新项目都创建了 bin 和 obj 两个文件夹。 这两个文件夹下都有一个 Debug 子目录,其中包含可执行文件 HelloWorld.exe 在“解决方案资源管理器”中启用“显示所有文件”选项,可查看“Hello World”项目的结构,总结,.NET Framework由 .NET Framework 类库和公共语言运行时两个主要组件组成 CLR是管理用户代码执行的现代运行时环境,它提供JIT 编译、内存管理、异常管理和调试等方面的服务 CTS定义
17、声明、定义和管理所有类型所遵循的规则,而无需考虑源语言 CLS是所有针对 .NET的编译器都必须支持的一组最低标准,以确保语言的互操作性 命名空间是一组包含相关方法的相似类,专门用于避免类与类之间的名称冲突 即时 (JIT) 编译器将MSIL代码编译为特定于目标操作系统和计算机体系结构的本机代码,总结,Visual Studio .NET 2003 是用于创建、编写、运行和调试程序的集成开发环境。 用户使用 VS.NET 中的“起始页”可以自定义 IDE。IDE 还包含许多有用的链接,如最近的项目、下载和联机新闻组等 VS.NET 中的程序组成项目和解决方案。项目是一组相关的文件,解决方案则是一组相关的项目 Visual Studio .NET 为用户提供了用于浏览文件的各种窗口 “动态帮助”窗口为用户提供了与当前光标所在位置相关的文章,作业,安装vs2005开发工具 输入“helloworld ”程序测试开发工具是否正常运行,