1.1.3 C#的特点
作为一个程序员,如果能够掌握一门语言,这门语言能够继承C++的强大灵活性,能够像Java一样语法简洁易于理解,又能像Visual Basic一样提供易用的“拖放”式功能,那将是一件非常愉快的事情。C#正好就是这样的一门集众语言之所长的语言。从其发展历史可以看出,C#是从C、C++发展而来的,所以它继承并改进了许多C和C++的内容,同时它自己也增加了许多独特的内容。
C#具有独特的优良特性,使其能够吸引众多的程序员来用它开发出非常优秀的软件。C#是一种先进的、面向对象与组件的开发语言,并且能够方便快捷地在Windows网络平台建立各种应用和能够在网络间相互调用的Web服务。从开发语言的角度来讲,C#可以更好地帮助开发人员避免错误,提高工作效率,而且同时具有C、C++和Java的强大功能。C#的特点可以概括为以下几个方面:
(1)简洁的语法
虽然学习本书不需要任何的编程基础,但在这里不得不提到C++。在默认的情况下,C#的代码在.NET框架提供的“可操纵”环境下运行,不允许直接进行内存操作。它所带来的最大的特色是没有了指针。与此相关的是,那些在C++中被较多使用的操作符(如“::”“->”)已经不再出现。C#只支持一个“.”,对于用户来说,现在需要理解的一切仅仅是名字的嵌套而已。C#对一些语言只保留了常见的形式,而清除了其他冗余形式。
(2)精心的面向对象设计
C#具有面向对象语言所应有的一切特性:封装、继承、多态,C#通过精心的面向对象设计构建了从高级商业对象到系统级的应用。
(3)与Web的紧密结合
.NET应用程序开发模型意味着越来越多的解决方案需要与Web标准相统一,例如超文本置标语言(Hypertext Markup Language,HTML)和可扩展置标语言(eXtensible Markup Language,XML)。C#允许直接将XML数据映射成为结构。这样就可以有效地处理各种数据。
(4)完整的安全性与错误处理
安全性与错误处理能力是衡量一种语言是否优秀的重要依据。任何程序设计人员都会犯错误,即使是最熟练的程序员也不例外,例如对不属于自己管理范围的内存空间进行修改等。这些错误常常产生难以预见的后果。一旦这样的软件被投入使用,寻找与改正这些简单错误的代价将会是让人无法承受的。C#的先进设计思想可以消除软件开发中的许多常见错误,并提供了包括类型安全在内的完整的安全性能。为了减少开发中的错误,C#会帮助开发者通过使用更少的代码完成相同的功能,这不但减轻了编程人员的工作量,同时更有效地避免了错误的发生。
(5)内置的版本支持
C#提供内置的版本支持来减少开发费用,使用C#将会使开发人员更加容易地开发和维护各种业务逻辑及代码。升级软件系统中的组件(模块)是一件很容易产生错误的工作。在代码修改过程中可能对现存的软件产生影响,也很有可能导致程序的崩溃。为了帮助开发人员处理这些问题,C#在语言中内置了版本控制功能。例如,函数重载必须被显式声明,而不会像在C++或Java中经常发生的那样不经意地被进行,这可以防止代码级错误和保留版本化的特性。另一个相关的特性是支持接口和接口的继承。这些特性可以保证复杂的软件能够被方便地开发和升级。
(6)灵活性和兼容性
在简化语法的同时,C#并没有失去灵活性。如果需要,C#允许将某些类或者类的某些方法声明为非安全的,这样一来,将能够使用指针、结构和静态数组,并且调用这些非安全代码不会带来任何其他问题。此外,它还提供了一个功能用来模拟指针——delegates。C#不支持类与类的多重继承,通过接口来实现多重继承的方法是其灵活性的一种体现。
正是由于其灵活性,C#允许与需要传递指针型参数的API进行交互操作,DLL的任何入口点都可以在程序中进行访问。C#遵守.NET公用语言规范(Common Language Specification,CLS),从而保证了C#组件与其他语言组件间的互操作性。