C#项目实训教程
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1.2 C#的特点

C#在带来对应用程序快速开发的同时,并没有牺牲C/C++程序员所关心的各种特性。对于C/C++程序员来说,C#依然能够熟练应用。而对于初级学习者来说,快速应用程序开发的思想与简洁的语法将会使学习者迅速成为一名熟练的开发人员。另外,C#是专门为.NET应用而开发出的语言,这从根本上保证了 C#与.NET 框架的完美结合,在.NET 运行库的支持下,.NET框架的各种优点在C#中表现得淋漓尽致。

1.简洁的语法

C#代码在.NET框架提供的“可操纵”环境下运行,不允许直接内存操作。其最大的特色是没有了指针,与此相关的是那些在C++中被疯狂使用的操作符已经不再出现(例如:“::”、“→”和“;”,C#只支持一个“.”)。语法中的冗余是C++中的常见的问题,C#对此进行了简化,只保留了常见的形式,其他的冗余形式从其语法结构中被清除了出去。

2.面向对象设计

C#具有面向对象语言所应有的一切特性:封装、继承和多态性。在C#的类型系统中,每种类型都可以看做一个对象,且只允许单继承,即一个类不会有多个基类,从而避免了类型定义的混乱。C#中没有全局函数、全局变量和全局常数,所有的都封装在一个类之中,这使得代码具有更好的可读性,并且减少了发生命名冲突的可能。

3.与Web的紧密结合

SOAP(Simple Object Access Protocal,简单对象访问协议)的使用,使得C#能与Web紧密结合,使大规模深层次的分布式开发成为可能。由于有了Web服务框架的帮助,对程序员来说,网络服务看起来就像是C#的本地对象,程序员们能够利用已有的面向对象的知识与技巧开发Web服务,仅需要使用简单的C#语言结构和C#组件就能够方便地为Web服务,并允许通过Internet被运行在任何操作系统上的任何语言所调用。例如XML已经成为网络中数据结构传递的标准, C#允许直接将XML数据映射成为结构,这样就可以有效地处理各种数据。

4.完整的安全性与错误处理

C#先进的设计思想可以消除软件开发中的许多常见错误,并提供了包括类型安全在内的安全性检查。为了减少开发中的错误,C#会帮助开发者通过更少的代码完成相同的功能,这不但减轻了编程人员的工作量,同时更有效地避免了错误的发生。C#中不能使用未初始化的变量,对象的成员变量由编译器将其设置为零,当局部变量未经初始化而被使用时,编译器将做出提示。

5.版本处理技术

升级软件系统中的组件(模块)是一件容易产生错误的工作。在代码修改过程中可能对现存的软件产生影响,很有可能导致程序的崩溃。为了帮助开发人员处理这些问题,C#在语言中内置了版本控制功能。例如函数重载必须被显示声明,而不会像在C++或Java 中经常发生的那样不经意地进行,这可以防止代码级错误的出现,还能保留版本化的特性。另一个相关的特性是对接口和接口继承的支持,这些特性可以保证复杂的软件可以被方便地开发和升级。

6.灵活性和兼容性

在简化语法的同时,C#并没有失去灵活性。例如C#不能用来开发硬件驱动程序,在默认的状态下没有指针等。如果需要,C#允许将某些类或类的某些方法声明为非安全的,这样一来,就能够使用指针、结构和静态数组,并且调用这些非安全代码不会带来任何其他的问题。

C#允许与需要传递指针型参数的API(Application Programming Interface,应用程序编程接口)进行交互操作,DLL(Dynamic Linkable Library,动态链接库文件)的任何入口点都可以在程序中进行访问。C#遵守.NET公用语言规范(CLS),从而保证了C#组件与其他语言组件间的互操作性。