1、,C#面向对象分析与设计,第5章 Windows应用程序,第4章 面向对象编程进阶,第3章 面向对象编程基础,第2章 C#编程基础,第1章 C#快速入门,C# 实用教程,第10章 Web应用程序,第9章 C#多线程技术,第8章 数据库应用,第7章 文件操作,第6章 GDI+编程,第一章 C#快速入门,1.1 什么是C#, .NET 1.2 C#的由来及发展 1.3 C#的特点,与 C+和Java的区别 1.4 C#的运行环境和安装 1.5 C#集成开发环境 1.6 关于命名空间 1.7 第一个C#程序,1.1 什么是C#?,C#是微软公司在2000年7月发布的一种全新且简单、安全、面向对象的程
2、序设计语言。它是专门为.NET的应用而开发的语言。它吸收了C+、Visual Basic、Delphi、Java等语言的优点,体现了当今最新的程序设计技术的功能和精华。C#不仅可以用来开发大型的应用程序,而且特别适合于Internet的应用开发,近年来已逐渐成为一门主流语言。,.NET定义,.NET技术是微软公司推出的一个全新概念,它代表了一个集合、一个环境和一个可以作为平台支持下一代Internet的可编程结构。.NET平台包括.NET框架和.NET开发工具等组成部分。.NET框架(Framework)是整个开发平台的基础,包括公共语言运行库和.NET类库。.NET开发工具包括Visual
3、Studio.NET集成开发环境和.NET编程语言。,公共语言运行库公共语言运行库是 .NET Framework 的基础。可以将运行库看作一个在执行时管理代码的代理,它提供核心服务(如内存管理、线程管理和远程处理),而且还强制实施严格的类型安全以及可确保安全性和可靠性的其他形式的代码准确性。,.NET框架类库 .NET Framework 类库是一个与公共语言运行库紧密集成的可重用的类型集合。 可使用 .NET Framework 开发下列类型的应用程序和服务: 控制台应用程序。 Windows GUI 应用程序(Windows 窗体)。 ASP.NET 应用程序。 XML Web serv
4、ices。 Windows 服务。,1.2 C#的由来及发展,1995年,SUN公司推出了面向对象的开发语言Java,具有跨平台、跨语言的特点,逐渐成了企业级应用系统开发的首选工具。基于C/C+的应用开发人员转向于从事基于Java的应用开发。在Java的冲击下,作为世界上最大的软件公司微软立即做出了迎接挑战的反应。很快微软推出了基于Java语言的编译器Visual J+。Visual J+在最短的时间里由1.1版本升级到了6.0版本。Visual J+ 6.0集成在Visual Studio 6.0中,不但运行速度大大加快,而且增加了许多新特性,使得Visual J+成为强有力的Windows
5、应用开发平台,并成为业界公认的优秀Java编译器。,Visual J+虽然具有强大的开发功能,但主要应用在Windows平台的系统开发中,SUN公司认为Visual J+违反了Java的许可协议,即违反了Java开发平台的中立性,因而,对微软提出了诉讼,这使得微软处于极为被动的局面。法院判决Micorsoft赔付Sun公司19亿美元。为了改变这种局面,微软另辟蹊径,决定推出其进军互联网的庞大.NET计划,和该计划中重要的开发语言Visual C#(简称VC#或C#)。现在Micorsoft推广C#,C#纯粹是Java的复制品,但C#的核心类库 只用于Windows系统。,微软的.NET是一项非
6、常庞大的计划,也是微软今后发展的战略核心。.NET代表了一个集合、一个环境、一个编程的基本结构,作为一个平台来支持下一代的互联网。为了支持.NET平台,Visual Studio .NET在原来的Visual Studio 6.0的基础上进行了极大的修改和变更。在Visual Studio .NET测试版中Visual J+就消失了,取而代之的就是VC#语言。,美国的微软公司在2000年6月份举行的“职业开发人员技术大会”上正式发布了VC#语言。其英文名为VC-Sharp。微软公司对VC#的定义是:“VC#是一种类型安全的、现代的、简单的,由C和C+衍生出来的面向对象的编程语言,它是牢牢根植于
7、C和C+语言之上的,并可立即被C和C+开发人员所熟悉。VC#的目的就是综合Visual Basic的高生产率和C+的行动力。,1.3 C#的特点,作为编程语言,C#是现代的、简单的、完全面向对象的,而且是类型安全的。重要的是,C#是一种现代编程语言。在类、名字空间、方法重载和异常处理等方面,C#去掉了C+中的许多复杂性,借鉴和修改了Java的许多特性,使其更加易于使用,不易出错。下面列举了一些C#在设计上的优点:,C#的优势,简单性,1.没有指针是C#的一个显著特性, 用户使用一种可操控的(Managed)代码进行工作时,直接的内存存取,将是不允许的。 2.在C#中不再需要记住那些源于不同处理
8、器结构的数据类型,现代性,1.用户可以使用一个新的decimal数据类型进行货币计算。 2.C#通过代码访问安全机制来保证安全性,根据代码的身份来源,可以分为不同的安全级别,不同级别的代码在被调用时会受到不同的限制。,面向 对象,1.C#支持面向对象的所有关键概念:封装、继承和多态性。 2. C#的继承机制只允许一个基类。如果需要多重继承,用户可以使用接口。,类型安全性,1.C#实施了最严格的类型安全机制来保护它自身及其垃圾收集器。 2.边界检查。 3.算术运算溢出检查。 4. C#中传递的引用参数是类型安全的。,版本处 理技术,C#尽其所能支持DLL版本处理功能,虽然C#自己并不能保证提供正
9、确的版本处理结果,但它为程序员提供了这种版本处理的可能性。有了这个适当的支持,开发者可以确保当他开发的类库升级时,会与已有的客户应用保持二进制级别上的兼容性。,C#与C+的比较,编译目标:C+直接编译为本地可执行代码,C#默认编译为中间语言(IL)代码,执行时再通过Just-In-Time将需要的模块临时编译为本地代码。 内存管理:C+需要显示删除动态分配给堆的内存,C#不必,C#采用垃圾回收机制 指针:C+大量使用指针,C#使用对类实例的引用 字符串处理:C#中字符串是基本数据类型因此比C+对字符串的处理要简单 库:C+依赖于以继承和模板为基础的标准库,C#依赖于.NET类库 C+允许多继承
10、,C#只能单继承,通过接口实现多继承.,C#与Java的比较,C#面向对象的程度比Java高 C#中的基本类型都是面向对象的 C#具有比Java更强大的功能 C#语言的执行速度比Java快。,4 C#的运行环境和安装,1.4.1 C#的运行环境C#是Visual Studio.NET的一部分。作为一个强大的集成开发工具,Visual Studio.NET对系统环境有较高的要求。1.硬件要求中央处理器(CPU):最低配置为Pentium450或同等的CPU,推荐配置为Pentium 3.0G或同等及更好的CPU。内存:最低配置为128MB。推荐配置为512MB内存。 硬盘:可用空间3GB以上,推
11、荐硬盘为80GB。显示器:最低配置800600、256色分辨率的显示器。推荐配置1024768全彩分辨率以上的显示器,因高配置显示器可方便地显示开发环境提供的多个不同功能窗口。,2.软件要求操作系统:Windows 2000、Windows XP或WindowsNT4.0。注意:中文版的Visual Studio.NET不再支持在Windows Me和Windows 95/98等系统上安装。,1.4.2 C#的安装C#是Visual Studio.NET的一部分,同其他 的.NET语言一样,都必须在.NET框架环境下运行。因此,要建立一个完整的VC#开发平台,必须安装Visual Studio
12、.NET。系统中无论安装的是Windows 2000、Windows NT 4.0还是Windows XP,只要硬件配置满足VC#的要求,都可以安装VC#。安装过程大致分为两部分,首先是按照.NET框架的要求对Windows组件进行更新,然后再进行Visual Studio.NET和VC#的安装。首先将Visual Studio.NET的第一张光盘放入驱动器中,安装程序会自动启动,然后打开“Visual Studio.NET安装程序”对话框,对话框中给出了3个选项。,1.5 C#集成开发环境 1.5.1 C#的启动由于Visual Studio.NET所包括的各个语言工具,都使用相同的集成开发
13、环境,所以在启动VC#之前,要启动整个Visual Studio.NET。这时在开始菜单中选择“开始”“程序” “Microsoft Visual Studio.NET” “Microsoft Visual Studio.NET”命令,打开“起始页”窗口。要启动VC#开发环境有两种方式,一种是单击“起始页”上的“打开项目”按钮,选择现在已存在的VC#项目文件,另一种是单击“起始页”上的“新建项目”按钮,则打开一个“新建项目”对话框。,1.5.2 VC#集成开发环境VC#的集成开发环境集成了设计、开发、编辑、测试和调试的多种功能,使得开发人员能够方便、快速地开发应用程序。集成开发环境标题下面是菜
14、单栏和工具栏,中央工作区是用来设计程序界面的窗体设计器和代码编辑窗口。 1. 菜单栏在菜单栏中,共有11个菜单标题,每个菜单标题都有一个下拉式菜单。 (1)文件(File):主要包括新建(New)、打开(Open)、保存(Save)、新建项目(New Project)以及打开和关闭解决方案等命令。 (2)编辑(Edit):主要包含一些符合Windows操作风格的进行文件编辑的各项命令。如撤消(Undo)、复制(Copy)、粘贴(Paste)、删除(Delete)、查找(Find)和替换(Replace)等命令。,(3)视图(View):包含显示与隐藏工具栏、工具箱(Toolbox)和各种独立的
15、工具窗口的所有命令。 (4)项目(Project):包括向当前项目添加、改变和删除组件、引用Windows对象和添加部件等命令。 (5)生成(Build):包含代码生成的有关命令。 (6)调试(Debug):包含调试程序的命令,启动和终止当前应用程序运行的命令。( 7 ) 数据(Data):包含数据的生成和预览命令。 (8)格式(Format):包括改变窗体上控件大小和对齐方式等命令。 (9)工具(Tools):包括进程调试、数据库连接、宏和外接程序管理、设置工具箱和选项等命令。 (10)窗口(Windows):包含一些屏幕窗口布局的命令。 (11)帮助(Help):包含方便开发人员使用帮助信
16、息的命令。,2.工具栏工具栏是由多个图标按钮组成的,可提供对常用命令的快速访问。除了在菜单栏下面显示的标准工具栏外,还有Web工具栏、控件布局工具栏等多种特定功能工具栏。要显示或隐藏这些工具栏,可选择“视图”菜单中的“工具栏”命令,或者在标准工具栏单击鼠标右键,在弹出的菜单中选定所需的工具栏。,标准工具栏,3.工具箱工具箱中包含了建立应用程序的各种控件以及非图形化的组件。工具箱由不同的选项卡组成,各类控件、组件分别放在“数据”、“组件”、“Windows窗体”、“剪贴板循环”、“常规”5个选项卡下面。(1)“数据”选项卡中主要放置访问数据库的控件。(2)“组件”选项卡中放置一些系统提供的组件,
17、如报表、 消息队列等。(3)“剪贴板循环”选项卡中保存了最近拷贝到系统剪贴板上的12个控件或组件,可以从剪贴板上直接拖动控件到编辑的窗体中。(4)“常规”选项卡默认为空,可以在这里保存常用的控件,包括自定义控件。(5)“Windows窗体”选项卡是最常用的选项卡,这个选项卡主要放置开发Windows应用程序所使用的控件。如文本框、标签框等,以后会陆续介绍这些控件。,4. 解决方案资源管理器在VC#中,项目是一个独立的编程单位,其中包含一些相关的文件,若干个项目就组成了一个解决方案。解决方案资源管理器以树状的结构显示整个解决方案中包括哪些项目以及每个项目的组成信息。,“解决方案资源管理器”窗口,
18、在VC#中所有包含VC#代码的源文件都是以.cs为扩展名,在解决方案资源管理器中显示这个文件,然后就可以编辑它了。在每个项目的下面显示了一个引用,在这里列出了该项目引用的组件。解决方案资源管理器窗口的上边有三个选项按钮,依次为“刷新”、“显示所有文件”和“属性”。通常,解决方案资源管理器隐藏了一些文件,单击“显示所有文件”选项按钮,可以显示出这些隐藏的文件。“刷新”选项按钮的作用是可以对没有保存的项目文件进行刷新。单击“属性”选项按钮,则可以打开“属性”窗口,显示所选择对象的属性。,动态帮助窗口动态帮助窗口是通过“帮助”菜单下的“动态帮助”命令打开的,这是一个与上下文相关的的帮助系统。当单击不
19、同的控件或者将光标在代码的不同关键字上移动时,动态帮助窗口中显示的内容将会随之发生变化。对于VC#的初学者来说,利用这种“动态帮助”功能是非常有用的。,动态帮助窗口,命名空间 命名空间就像在文件系统中一个文件夹容纳多个文件一样,可以看作某些类的一个容器。通过把类放入命名空间可以把相关的类组织起来,并且可以避免命名冲突。命名空间既用作程序的“内部”组织系统,也用作“外部”组织系统(一种向其他程序公开自己拥有的程序元素的方法)。,6 关于命名空间,1. 命名空间声明 namespace关键字用于声明一个命名空间。格式如下: namespace name.name1 . 类型声明 其中name, n
20、ame1为命名空间名,可以是任何合法的标识符。命名空间名可以包含句号。 例如: namespace N1.N2 class A class B() ,2命名空间的使用 使用Using指令能够引用给定的命名空间或创建命名空间的别名(using 别名)。 using 别名 = 类或命名空间名;,3.系统定义的命名空间 命名空间分为两类:用户定义的命名空间和系统定义的命名空间。用户定义的命名空间是在代码中定义的命名空间。,1.7 第一个C#程序,【例1.1】 在控制台窗口中输出“Hello World!”字样。 在Visual C#.NET开发环境中新建一个控制台应用程序项目,并在源代码文件中输入如
21、下语句:using System; class HelloWorld public static void Main()Console.WriteLine(“Hello World!“); 程序运行结果下图所示。Hello World!,将此内容保存到文件EX1_1.cs中,然后选择菜单“调试”“启动”或直接按F5键运行此程序。也可以不使用Visual C#.NET环境,直接用文本编辑工具输入以上代码,并且保存到Helloworld.cs文件中,再通过开始菜单的“程序”“Microsoft Visual Studio 2005”“Visual Studio Tools”“Visual Stud
22、io 2005命令提示”打开命令行窗口,在命令窗口中输入:csc /target:exe EX1_1.cs程序运行结果如图1.1所示。 Hello World!,下面再看Windows应用程序的版本。【例1.2】 弹出一个消息对话框显示“Hello World!”字样。 用“Windows应用程序”模板建立项目,或者使用文本编辑工具输入源代码如下: using System; using System.Windows.Forms; class HelloWorld public static void Main()MessageBox.Show(“Hello World“,“Message f
23、rom C#“); ,这次需要增加对System.Windows.Forms命名空间的引用,选择菜单“项目” “添加引用”打开“添加引用”对话框,在列表中找到并选中“System.Windows.Forms.dll”,然后单击“选择”按钮,最后单击“确定”按钮完成添加。将文件另存为EX1_2.cs,在开发环境中按F5键编译运行程序,如果用命令行方式编译请参照控制台版,编译命令如下:csc /target:winexe EX1_2.cs程序的运行结果如图1.2所示。,通过上述两段代码来认识C#: 1代码最前面是以using关键字开始的命名空间导入语句,然后是使用class关键字对类HelloWorld的定义。2命名空间是为了防止相同名字的不同标识符发生冲突而设计的隔离机制。 3在.NET框架类库中提供的不同组件都被包含在一定的命名空间中,所以要使用这些组件也必须通过using关键字开放相应的命名空间,使得相应的标识符对编译器可见,如果没有使用using关键字,那么相应的标识符就应包含完整的空间路径。4由于C#是一种完全的面向对象的语言,所以不会有独立于类的代码出现,应用程序的入口也必须是类的方法,C#规定命名为Main的方法作为程序的入口 5C#是一种大小写敏感的语言 !,