发布时间:2023-11-02 01:42来源:www.sf1369.com作者:宇宇
理解C#,也要明白诞生C#的.NET的一些东西。
在一个软件系统中,电脑硬件+操作系统提供基本的功能,而我们代码开发出来的程序,都是基于操作系统提供的基本功能上做进一步的逻辑设计。不同的操作系统提供的基本功能是有差异的,所以针对一款操作系统开发的软件,一般都不能在其他系统中运行。打个比方来说吧,为iPhone开发的程序,不能直接在安卓的手机上用,Linux上开发的东西,也不能直接在Windows上用。
但是JAVA就是一个异类。JAVA通过在操作系统之上再架构一层中间层(也就是虚拟机概念),将多种不同的操作系统的有差异的基础操作规范成一种统一模式,所以JAVA的软件一旦开发,可以在多达N中的不同系统中运行。手机种类繁多的时代,软件开发商不可能为每种OS都开发一版本软件,多数选择JAVA就是这个原因。JAVA的跨平台虚拟机概念使之广为流行。
微软早先作为操作系统的龙头老大,本不在意跨平台问题,但是随着地位受冲击,也意识到跨平台的重要性,这也怪微软自己,单就Windows家族,前后版本就出现了一些不兼容。为了能学习JAVA的经验,微软推出了自己的操作系统之上的跨平台统一中间层系统.NET,试图通过捆绑到个版本Windows中,提供一致的应用接口,这样,只要是.NET开发人员,不必担心自己的产品最终应用在什么操作系统中,只要目标操作系统装了.NET,就OK.
C#是推出.NET的时候一并诞生的,可以说是单就语言技术、风格、严谨等特点上来说,编程语言中最为优秀的一种语言,甚至由它而引发出计算机语言界中的多种新的规范和特征。我们知道多数C#编译器都只是运作于.NET平台上的,但并不是说C#只能运作于.NET平台上,只要有人愿意,就可以开发一个运作于非.NET平台上的C#编译器。只是C#还有一个很特殊的问题,即它仍然在不断的发展中,新的语言细节不断地推出,比如直接支持SQL的LINQ语法等等,除了设计该语言的微软,其他公司很难有这个实力开发其它平台的C#开发环境。
微软是做Windows的,在他眼中,其他操作系统都是敌人。敌人如果想要加入微软阵营,享用Windows程序,就只有选择让微软给他们的系统中套上.NET的头套;微软是不肯直接把开发宝器C#随便给他们的。Linux显然目前并不支持.NET平台(主要还有个原因就是Linux是免费的,.NET上的产品多是收费的,不融洽),所以就现状而言,C#在Linux上暂时无法使用(不是不能)。
真正意义上的跨平台是说类似于JAVA虚拟机,.NET平台这样的中间层产品,或者是某种软件,有多种客户端在不同的平台上但是却都可以工作。简言之,跨平台是指一种软件产品的特性。而语言只是一种开发产品的工具。你可以用这种工具去开发一个跨平台的产品,可以用多种不同的工具,却只开发出同样一种平台的产品。。。
C#优势其他两位也都说了,智能,强大(就是高级了)。最NB的还在于这个语言仍然在进化中,而很多其他语言已经基本上成型,以后不再会有什么改进了。C#锻炼人逻辑思维的能力最好。虽然它目前仍然主要被绑在.NET平台中使用,如果你要做一些iOS,Linux开发可能还用不上,执行效率也不是最高的,但是从软件开发者角度而言,开发一款软件,开发效率最高的选择!(底层驱动这样软件例外)
C#是微软公司在2000年6月发布的一种新的编程语言,并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究院Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、界面、与Java几乎同样的语法,和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NET windows网络框架的主角。
C# 是微软对这一问题的解决方案。C#是一种最新的、面向对象的编程语言。它使得程序员可以快速地编写各种基于MICROSOFT .NET平台的应用程序,MICROSOFT .NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。
正是由于C#面向对象的卓越设计,使它成为构建各类组件的理想之选——无论是高级的商业对象还是系统级的应用程序。使用简单的C#语言结构,这些组件可以方便的转化为XML网络服务,从而使它们可以由任何语言在任何操作系统上通过INTERNET进行调用。
最重要的是,C#使得C++程序员可以高效的开发程序,而绝不损失C/C++原有的强大的功能。因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。
C#是微软公司在2000年7月发布的一种全新且简单、安全、面向对象的程序设计语言,是专门为.NET的应用而开发的语言。它吸收了C++、Visual Basic、Delphi、Java等语言的优点,体现了当今最新的程序设计技术的功能和精华。C#继承了C语言的语法风格,同时又继承了C++的面向对象特性。不同的是,C#的对象模型已经面向Internet进行了重新设计,使用的是.NET框架的类库;C#不再提供对指针类型的支持,使得程序不能随便访问内存地址空间,从而更加健壮;C#不再支持多重继承,避免了以往类层次结构中由于多重继承带来的可怕后果。.NET框架为C#提供了一个强大的、易用的、逻辑结构一致的程序设计环境。同时,公共语言运行时(Common Language Runtime)为C#程序语言提供了一个托管的运行时环境,使程序比以往更加稳定、安全。其特点有:
· 语言简洁。
· 保留了C++的强大功能。
·快速应用开发功能。
· 语言的自由性。
· 强大的Web服务器控件。
· 支持跨平台。
· 与XML相融合。 C#对C++进行了多处改进,主要区别如下:
· 编译目标:C++代码直接编译为本地可执行代码,而C#默认编译为中间语言(IL)代码,执行时再通过Just-In-Time将需要的模块临时编译成本地代码。
·内存管理:C++需要显式地删除动态分配给堆的内存,而C#不需要这么做,C#采用垃圾回收机制自动在合适的时机回收不再使用的内存。
·指针:C++中大量地使用指针,而C#使用对类实例的引用,如果确实想在C#中使用指针,必须声明该内容是非安全的。不过,一般情况下C#中没有必要使用指针。
· 字符串处理:在C#中,字符串是作为一种基本数据类型来对待的,因此比C++中对字符串的处理要简单得多。
· 库:C++依赖于以继承和模板为基础的标准库,C#则依赖于.NET基库。
· C++允许类的多继承,而C#只允许类的单继承,而通过接口实现多继承。
·C#亦应该于网页设计。如ASP与ASP.NET。而C++则无。
在后面的学习中会发现,C#与C++相比还有很多不同和改进之处,包括一些细节上的差别,这里就不一一列举了。 · C#面向对象的程度比Java高。
· C#中的基本类型都是面向对象的。
· C#具有比Java更强大的功能。
· C#语言的执行速度比Java快。