第03章C概述

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第3章C#概述目标阅读和研究本章之后,你应该能够掌握:.NETFrameworkCommonLanguageRuntimeC#的语言特点C#的编译环境引言本章将对C#的基础知识进行简要的介绍,其中包括.NETFramework、CommonLanguageRuntime以及C#的特点等。本章的目的是让读者快速了解C#的基本概念,希望读者对C#能够有一个基本的认识。任何一门新技术的学习过程中最开始的部分都比较困难,读者可以不必过分纠缠于本章的名词,只需有一个简单的了解即可。3.1.NETFramework3.1.1.NETFramework介绍.NETFramework是一个平台,此平台支撑着本书中所要介绍的C#语言。同样,.NETFramework还支持许多其他语言,如VisualBasic.NET,VisualC++.NET等。该平台支持多种应用程序开发,除了典型的Windows窗体应用程序和控制台应用程序之外,还支持Web应用程序、Web服务等各种类型的应用程序。应用.NETFramework可以满足应用程序开发的大部分需要。由于其强大的功能特性和方便易用性,.NETFramework已经成为越来越多的公司和机构的开发工具。.NETFramework是一个跨平台的平台。尽管这句话十分拗口,但这是事实,现在已经可以看到应用于PDA手持设备的.NETFramework。事实上在一开始微软就许诺了.NETFramework的跨平台特性,只是这个工作的进展并没有得到广大开发者的认可。可以看到,.NETFramework不仅拥有微软的强大技术支持和不断的改进、升级,广大的开发者也为.NetFramework带来不断的惊喜,这都说明了.NETFramework技术拥有良好的前景。现在列出几个比较热门的网站,以供读者浏览:的网络资源非常多,希望读者不要迷失在浩瀚的网络中。掌握.NETFramework的基础知识是本书的重点内容,也是读者的首要任务。3.1.2从.NETFramework1.1到.NETFramework2.0.NETFramework1.1已经为广大的开发人员提供了足够多的功能,1.1版本的框架可以支持许多成熟的应用。但是随着版本的升级和技术的进步,.NETFramework又带来了许多激动人心的惊喜。本小节可供有.NETFramework1.1开发经验的读者快速阅读,没有经历过.NETFramework1.1开发的读者也可以迅速浏览本小节,以获得直观的认识。.NETFramework2.0在.NETFramework1.1的基础上又提供了许多功能的改进。除此之外,还增加了许多新功能,如表3.1所示。表3.1.NETFramework2.0新增功能特性简要介绍64位平台支持提供对64位计算机的支持访问控制列表支持添加了允许托管代码创建和修改AcL的新类已验证身份的流提供NegotiateStream和SslStream类进行身份验证的支持COMInterop服务增强功能类和工具中增加了4种支持与COM的互操作性的主要增强功能Console类增补提供对控制台窗口的更多控制数据保护API包含4种方法,可使应用程序无须调用平台即可加密密码、密钥、连接字符串等调试器显示属性控制当调试应用程序时VisualStudio显示类或成员的方式调试器编辑并继续支持引入了“编辑并继续”功能检测网络连接更改NetworkChange类可使应用程序在网络接口(也称为网卡)的Internet协议(IP)地址发生更改时接收通知分布式计算提供对分布式计算的支持EventLog增强可以对EventLog消息、参数和类别使用自定义DLL扩展的证书管理支持X.509证书存储区、证书链和证书扩展FTP支持可以使用WebRequest、WebResponse和WebClient类访问文件传输协议资源泛型和泛型集合引入了泛型,以创建灵活的可重用代码全球化5个新的全球化功能,对于开发用于不同语言和区域性的应用程序提供了更广泛的支持I/O增强功能对各种I/O类的可用性和功能进行了改进基于清单的激活提供了通过使用清单加载和激活应用程序的新支持.NETFramework远程处理.NETFramework远程处理现在支持IPv6地址以及泛型类型的交换获取有关本地计算机网络配置应用程序可以访问IP、IPv4、IPv6、TCP和UDP网络和使用情况的信息流量的统计信息和本地计算使用情况地址和配置信息PingPing类可使应用程序确定是否可通过网络访问远程计算机应用程序内部HTTP请求可以使用HttpListener类来创建响应HTTP请求的简单Web服务器缓存的编程空间通过使用System.NET.Cache命名空间中的类,应用程序可以使用WebRequest、WebResponse和WebClient类控制所获取资源的缓存编程语言4种Microsoft编程语言都有不同的改进。安全性异常System.Security.SecurityException类已得到扩展串行I/O设备支持新的serialPort类为应用程序提供了访问计算机串行端口以及与串行I/O设备进行通信的能力序列化BinaryFormatter和SoapFormatter类提供了版本容错序列化线程改进支持命名完全在托管代码中创建的进程问通信事件事务支持应用程序参与由.Microsoft分布式事务协调器(MSDTC)或本地事务管理器管理的事务强类型资源支持资源文件生成器(Resgen.exe)创建嵌入在可执行文件和附属程序集中的资源文件web服务支持使用基于事件的编程模式异步调用Web方法XML相关的功能提供了许多支持XML的新特性Windows窗体相关的功能提供了许多新Windows窗体功能.NETFramework2.0的新增功能需要读者在学习的过程中不断理解并掌握。对这些新特性的掌握是建立在掌握.NETFramework1.1的基础上的,希望读者不要急于深入.NETFramework2.0的新增功能,打好基础是学习任何一门编程语言的必经之路。3.1.3.NETFramework2.0支持的语言.NETFramework2.0除了支持本书所要讲到的C#之外,还提供了对其他语言的支持,包括c++、VisualBasic、JScript等。它们对应.NETFramework的版本分别为ManagedC++、VisualBasic.NET和Jscript.NET。多样性的语言为.NETFramework的易用性提供了保证。.NET的另一个诱人的特性就是.NET支持不同语言之问的互相调用。也就是说,VisualBasic.NET的开发人员可以使用C#开发人员编写的代码而不用进行语言移植。随着技术的深入,又出现了传统的Java与.NET之间互调用的技术,甚至J2EE。3.2CommonLanguageRuntime通常将.NETFramework分为.NETFramework类库、CLR(CommonLanguageRuntime)和ASP.NET,其中.NETFramework类库和ASP.NET会在本书后面的章节中进行介绍,这里对CommonLanguageRuntime进行简要的介绍。3.2.1什么是CommonLanguageRuntime同Java虚拟机JVM(JavaVirtualMachine)相似,CLR也是一个运行时环境。CLR负责内存分配和垃圾回收,也就是通常所说的资源分配,同时保证应用和底层系统的分离。总而言之,它负责.NET库所开发的所有应用程序的执行。CLR所负责的应用程序在执行时是托管的,即技术资料中经常出现的managed·词。托管代码带来的好处即跨语言调用、内存管理、安全性处理等。CLR隐藏了一些与底层操作系统打交道的环节,使开发人员可以把注意力放在代码所实现的功能上。非CLR控制的代码即非托管(unmanaged)代码,如C++等,这些语言可以访问操作系统的低级功能。垃圾回收(GarbageCollection)是.NET中一个很重要的功能,尽管这种思想在其他语言中也有实现。这个功能保证应用程序不再使用某些内存时,这些内存就会被.NET回收并释放。这种功能被实现以前,这些复杂的工作主要由开发人员来实现,而这正是导致程序不稳定的主要因素之一。垃圾回收带来的负面影响就是.NET会频繁地检查内存单元。虽然精确地得到监视程序运行的开销目前还不能实现,但由此带来的性能降低也得到了微软的承认。这种性能的降低总体来说还是可以忍受的,来自微软的消息也在不断指出这种消耗的降低。3.2.2CommonLanguageRuntime的运行机制在托管的CLR环境中运行代码,其运行机制的示意图如图3.1所示。图3.1CLR运行机制示意图一个典型的.NET程序的运行过程主要包括以下几个步骤:(1)选择编译器。为获得公共语言运行库提供的优点,必须使用一个或多个针对运行库的语言编译器。(2)将代码编译为Microsoft中间语言(MSIL)。编译将源代码翻译为MSIL并生成所需的元数据。(3)将MSIL编译为本机代码。在执行时,实时(JIT)编译器将MSIL(微软中间语言)翻译为本机代码。在此编译过程中,代码必须通过验证过程,该过程检查MSIL和元数据以查看是否可以将代码确定为类型安全。(4)运行代码。公共语言运行库提供使执行能够发生以及可在执行期间使用的各种服务的结构。3.3C#语言3.3.1什么是C#C#是本书所讲述的语言,也是.NET平台上最重要的语言之一。C#语言源于C和C++,是微软专门为.NET设计的语言。C#和.NETFramework同时出现和发展。由于C#出现较晚,吸取了许多其他语言的优点,解决了许多问题。简单地看来,C#仅仅是.NET开发的一种语言,但事实上C#是.NET开发中最好的一门语言,这是由C#自身的设计决定的。作为专门为.NET设计的语言,C#不但结合了C++强大灵活和Java语言简洁的特性,还吸取了Delphi和visualBasic所具有的易用性。因而C#是一种使用简单、功能强大、表达力丰富的全新语言。C#是一种简洁、类型安全的面向对象的语言,开发人员可以使用它来构建在.NETFramework上运行的各种安全、可靠的应用程序。使用C#,您可以创建传统的Windows客户端应用程序、XMLWebservices、分布式组件、客户端-服务器应用程序、数据库应用程序以及很多其他类型的程序。MicrosoftVisualC#2005提供高级代码编辑器、方便的用户界面设计器、集成调试器和许多其他工具,以在C#语言版本2.0和.NETFramework的基础上加快应用程序的开发。C#语法表现力强,只有不到90个关键字,而且简单易学。C#的大括号语法使任何熟悉C、C++或Java的人都可以立即上手。了解上述任何一种语言的开发人员通常在很短的时间内就可以开始使用C#高效地工作。C#语法简化了C++的诸多复杂性,同时提供了很多强大的功能,例如可为空的值类型、枚举、委托、匿名方法和直接内存访问,这些都是Java所不具备的。C#还支持泛型方法和类型,从而提供了更出色的类型安全和性能。C#还提供了迭代器,允许集合类的实现者定义自定义的迭代行为,简化了客户端代码对它的使用。作为一种面向对象的语言,C#支持封装、继承和多态性概念。所有的变量和方法,包括Main方法(应用程序的入口点),都封装在类定义中。类可能直接从一个父类继承,但它可以实现任意数量的接口。重写父类中的虚方法的各种方法要求override关键字作为一种避免意外重定义的方式。在C#中,结构类似于一个轻量类;它是一种堆栈分配的

1 / 11
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功