2.1 C#导言
C#是微软公司为了能够完全利用.NET平台优势而开发的一种新型编程语言。C#语言由C和C++演变而来,它是给那些愿意牺牲C++的一点底层功能来获得更方便和更产品化的开发环境的企业开发人员使用的。C#现代、简单、面向对象而且类型安全。尽管它借鉴了C和C++的许多东西,但是在一些诸如命名空间、类、方法和异常处理等特定领域,它们之间还存在着巨大的差异。
作为从C++和Java继承而来的、简单、现代、面向对象的语言,C#语言有如下一些优点。
1. 简单
◆ C#中指针已经消失,因此不安全的操作,比如说直接内存操作不被允许了。
◆ C#中“::”或“->”操作符是没有作用的。
◆ 因为它是基于.NET平台的,所以继承了自动内存管理和垃圾回收的特点。
◆ 原始数据类型可变的数据范围像Integer,Floats等。
◆ 整形数值0和1不再作为布尔值出现,C#中的布尔值是纯粹的true和false值。而且没有更多的“=”操作符和“==”操作符错误,“==”被用于进行比较操作而“=”被用于赋值操作。
2. 现代
◆ C#建立在当前的潮流上,使得创建相互兼容的、可伸缩的、健壮的应用程序非常快速和简单。
◆ C#拥有内建的支持来将任何组件转换成一个Web Service,运行在任何平台上的任何应用程序都可以通过互联网来使用这个服务。
3. 面向对象的
◆ C#支持数据封装、继承、多态和对象界面。
◆ C#引入结构体(structs)来使原始数据类型变成对象。
4. 类型安全
◆ 在C#中不能进行不安全的类型转换,如将double转换成boolean。
◆ 值类型(常量类型)被初始化为零值而引用类型(对象和类)也被编译器自动初始化为零值。
◆ 数组类型下标从零开始而且进行越界检查。
◆ 类型溢出将被检查。
5. 相互兼容性
◆ C#提供对COM和基于Windows的应用程序的原始支持。
◆ 允许对原始指针的有限制使用。
◆ 用户不再需要显式地实现Unkown和其他COM界面,这些功能已经内置。
◆ C#允许用户将指针作为不安全的代码段来操作老的代码。
◆ Visual Basic .NET和其他中间代码语言中的组件可以在C#中直接使用。
6. 可伸缩性和可升级性
◆ .NET引入了零部件的概念,它们通过其“手册”具有自描述的功能。手册确立了零部件的身份、版本、语言和数字签名等。零部件不需要在任何地方注册。
◆ 要扩展程序,只需要删除老的文件并用新的文件来升级它们,不需要注册动态链接库。
◆ 升级软件组件的过程只是一个错误探测的任务。对代码的修改能够影响现存的程序,C#在语言中支持版本修改。对界面和方法重载的支持使得复杂的程序框架能随着时间发展和进化。
7. 与Web开发相结合
◆ 新的开发模式意味着需要更好地利用现有的各种Web标准,例如HTML,XML和SOAP(简单对象存取协议)。现存的开发工具是在Internet出现前或是未得到充分应用前出现的,所以都不能很好地适应目前Web开发技术的需要。
◆ C#开发者可以方便地在MS网络平台上扩展自己的应用。C#可以将任何组件转变为Web服务,并且可以被运行于Internet上的任何平台的任何应用调用,重要的是C#对这一特性提供了内置的支持。