



本节首先从C#语言的产生谈起,简要概述了C#语言的设计团队、优点、由来背景等,然后详细论述了C#语言与其他主流语言比较的优势、C#语言的特点、C#语言的发展趋势、用C#语言开发的成功案例和C#语言的应用领域等内容,笔者相信选择C#语言编程,是程序员最正确的选择。
1998年,Anders Hejlsberg(Delphi和Turbo Pascal语言的设计者)和他的微软开发团队开始设计C#语言(C#英文读做C Sharp)。2000年7月微软公司发布了C#语言的第一个版本,它是一种全新且简单、安全、完全面向对象的程序设计语言,是专门为.NET的应用而开发的语言,它吸收了C++、Visual Basic、Delphi、Java等语言的优点,体现了当今最新的程序设计技术的功能和精华。
2000年9月,ECMA(国际信息和通信系统司标准化组织)成立了一个任务组,着力为C#语言定义一个Microsoft建议标准。据称,其设计目标是制定“一个简单、现代、通用、完全面向对象的编程语言”,于是出台了ECMA-334标准,这是一种令人满意的简洁语言,它有类似Java语言的语法,同时又借鉴了C++和C语言的风格。
在Java出现之后,Anders Hejlsberg在Borland公司一直郁郁不得志。这时,比尔盖茨慧眼识才,三顾茅庐,把Anders Hejlsberg请到了微软。最开始微软许以重金,但Anders Hejlsberg不为所动,当清楚Anders Hejlsberg的想法后,比尔盖茨答应给他一个宽松的环境——领导Visual J++语言设计小组,并提供薪水和红利奖金300万美元。很快,微软就利用它的Visual J++将Java开发人员拉拢到它的周围。可好景不长,由于Visual J++的很多特性明显是为Windows平台而设计的,所以SUN公司认为微软破坏了Java的跨平台性,最终,SUN公司中止了对微软的Java授权,这促使微软选择Anders Hejlsberg担任C#的首席设计师,从而开发并设计出优秀的C#语言。
跨平台性是软件开发中的一个重要概念,既不依赖于操作系统,也不依赖于硬件环境,在一个操作系统下(如Windows操作系统)开发的程序,放置到另一个操作系统下(如UNIX操作系统或Linux操作系统)仍然可以运行。
C#与C、C++和Java有着密切的“血缘”关系,恰当地说应该是青出于蓝而胜于蓝。首先,C、C++和Java这3种具有很大相似性的语言是应用最广泛的编程语言,几乎所有的专业程序员都了解C/C++,大多数程序员都了解Java。参照它们来设计C#,就使C#具有了一个坚固的、具有广泛认知的基础,也很容易实现从这些语言向C#的过渡。另外,由于这3种语言都得到广泛应用,所以它们的优、缺点都暴露无遗。在它们的基础上设计C#语言,就能有的放矢地保留它们的优点,摒弃它们的缺点,可以说C#语言是目前众多编程语言中面向对象最完善的一种,其与C++和Java的技术比较如下:
编译目标:C++代码直接编译为本地可执行的代码;而C#代码首先被编译为中间临时代码,然后在运行程序时,通过即时编译的方式将需要用到的模块临时编译成本地代码,这样C#程序的运行速度更快。
内存管理:C++需要手动编写代码回收不再使用的内存资源;而C#不需要这么做,C#采用垃圾回收机制自动在合适的时机回收不再使用的内存,这样C#程序能够减少因内存泄露带而来的麻烦。
指针管理:C++中大量地使用指针;而C#使用对类的实例的引用,如果确实想在C#中使用指针,则必须声明该内容是安全的,这样增强了程序的安全性和健壮性。
继承特性:C++允许类的多继承;而C#只允许类的单继承,但C#可以通过接口实现多继承,这使得C#程序的编写更加简单。
字符串处理:在C#中,字符串是作为一种基本数据类型来对待的,因此比C++中对字符串的处理要简单得多。
C#语言的执行速度比Java快,因为Java是解释型的语言,相比编译型的语言C#要慢。
C#中的基本类型都是面向对象的,但Java并不是,所以C#面向对象的程度比Java高。
C#具有比Java更强大的功能,比如,增加了大量可扩展性的功能和实现架构。
学习手册
说明
C语言不是面向对象的编程语言,它是一种面向过程的计算机程序设计语言。
C#语言主要用于开发可以在.NET平台(一种构建下一代因特网的集成开发环境)上运行的应用程序,并作为.NET平台的首选开发语言,甚至可以这样说,C#就是为.NET平台而产生的语言。C#的语言体系是构建在.NET框架(.NET平台中的重要组成部分之一)基础上的,它是从C、C++、Java派生而来的一种简单、现代、面向对象和类型安全的编程语言,并且能够与.NET框架完美结合,因此C#语言具有很多其他语言不完善,甚至没有的优良特点,具体如下:
1)快速应用开发功能
支持快速开发可以说是目前开发语言最为重要的一大功能,这也正是C/C++的致命伤。网络时代应用系统的开发必须按照网络时代的速度来进行,支持快速开发可以使得开发人员的开发效率倍增,从而使得他们可以从繁重的重复性劳动中解放出来。
2)语言的自由性
用C#编写的程序能最大程度地与任何支持.NET平台的语言(如VB.NET、VC++)互相交换信息,.NET平台可以让各种语言真正地互相交流。
3)强大的Web服务端组件
Web泛指网络或互联网等技术领域,在C#的Web编程中,最让人兴奋的是Web服务端的组件,它们不仅包括传统组件,还包括那些能够实现自动服务的可编程组件,甚至完全可以用C#编写自己的服务器端组件,这样使用C#语言开发Web服务端组件就更加自由、更加切合实际需要。有了这些强大的组件,开发人员就可以设计出功能更加强劲的企业级分布式应用程序。
4)支持跨平台
随着互联网应用程序的应用越来越广,人们逐渐意识到由于网络系统错综复杂,使用的硬件设备和软件系统也各不相同,开发人员所设计的应用程序必须具有强大的跨平台性。C#编写的应用程序就具有强大的跨平台性,这种跨平台性也包括了C#程序的客户端可以运行在不同类型的客户端上,如PDA、手机等非PC装置。
5)与XML的融合
XML中文译为可扩展标记语言,它能够使用一系列简单的标记来描述数据,更重要的是,它支持Internet环境下的跨平台操作,所以应用十分广泛。由于XML技术真正融入到了.NET和C#之中,C#的编程变成了真正意义的网络编程,甚至可以说.NET和C#是专为XML而设计的,使用C#的程序员可以轻松地通过C#内含的类来使用XML技术。就这方面而言,目前C#提供给了开发人员更多的自由和更好的性能来使用XML。
C#语言的正式推出是从2002年伴随着Visual Studio开发平台一起推出的,它一经发布,便受到全世界众多编程爱好者的追逐,发展速度逐年上升,其发展趋势如图1.1所示。
图1.1 C#语言发展趋势
学习手册
说明
从图1.1中可以看出,C自从2002年正式发布以来,一直呈现稳定的上升趋势,而且作为微软全力推广的一种新语言,伴随着Windows 7操作系统(内嵌.NET Framework 3.5)的发布与普及,它的发展前景被世界的编程人员所瞩目,前途无量。
使用C#语言开发的程序已经应用到工作和生活的各个方面,如网络通信系统、企业级管理软件和Web应用程序(作为ASP.NET技术的主要后台开发语言),下面列举若干典型成功案例供大家参考。
中国移动的飞信软件相信很多人都用过(如飞信2008奥运版,如图1.2所示),使用它发送短信方便快捷,它可以通过PC客户端、手机客户端和WAP方式登录,而且发送短信本身是免费的,该系统正是由C#语言开发的。
图1.2 飞信2008奥运版登录界面
安华农业保险公司是全国性的农业保险公司,该公司的保险系统负责为全国范围内的分支保险公司提供业务管理服务,该系统正是由C#语言开发的。
世界著名的快餐企业——肯德基,其中国区网站是(如图1.3所示)使用ASP.NET技术开发的,而ASP.NET技术的主要后台编程语言正是C#。
图1.3 肯德基中国区网站
C#语言身出名门,现今世界最大最强的软件公司——微软公司,并继承了优良的血统,保留了C、C++和Java等主流语言的优点,摒弃了它们的缺点,这使得C#语言更加完美,所以其应用领域也十分广泛。下面列举了在软件开发行业中几个比较热门的领域。
1)数据库应用程序开发
数据库应用程序,也就是企事业单位所使用的业务管理软件,如医院的医疗管理系统、超市的收银系统等,C#语言的ADO.NET技术非常适合于数据库应用程序开发。
2)分布式开发
分布式开发常用于设计比较大型的数据库应用程序,如银行的金融管理系统、交通行业的售票系统、公安部门的全国户籍管理系统等,C#语言的ADO.NET技术、WCF技术、Web Service技术等非常适合企于业分布式应用程序开发。
3)Web应用开发
如今是互联网的天下,使用ASP.NET技术开发Web应用程序十分流行,而C#正是该技术的主要后台开发语言。
4)网络通信开发
网络通信程序在工作和生活中经常接触到,如QQ软件、迅雷下载工具等,C#语言的多线程技术、数据流技术、Socket通信技术等非常适合于网络通信开发。
5)嵌入式设备开发
手机、PDA等时尚消费类电子产品相信大家都不陌生,使用Windows CE操作系统的时尚电子产品,其内部的应用软件、游戏等就可以使用C#语言进行嵌入式开发。
6)游戏软件开发
游戏大家更不陌生,很多人是因玩游戏而熟悉了计算机,C#语言通过与XNA游戏开发框架相结合,可以开发出效果非常绚丽的游戏。
7)工具软件开发
在使用电脑时,经常用到工具软件,如绘图工具、图片浏览器、播放软件等,C#语言可以使用先进的GDI+绘图技术、COM组件技术等来实现。
学习手册
说明
上面仅列出了几个主要的C应用领域,实际上C语言几乎可以应用到程手册序开发的任何领域。