一.什么是 c#?
c# 是由microsoft开发的一种新型编程语言,由于它是从c与c++ 中派生出来的,因此具有c++的功能.同时,由于是microsoft公司的产品,它又同 vb一样简单.对于web开发而言,c#象 java,同时具有delphi的一些优点.microsoft宣称:c#是开发.net框架应用程序的最好语言.
二.java与 c#
要学习c#,不能不首先看一看java语言.
相对于其他编程语音,java有一个无庸置疑的优点:用户以及编译器第一次不必了解生成可执行代码的特定cpu细节.java引入了一个编译代码中间层,叫做字节代码,并使用一个虚拟抽象的机器,而不是一个真实的机器.当java编译器结束了一个源文件的编译后,你所得到的不是可以立即在一个给定平台上运行的代码,而是可以在任何真实的平台上运行的字节代码,唯一的条件就是这个平台要理解与支持java.这些发展包含着一个文化的变革.作为一个开发人员,你只需要确定java虚拟机(jvm)提供的抽象层,不同的os销售商负责执行代码层,从而将中立于平台的字节代码映射到主机平台的机构中.在这种情况下,java似乎是统一分布式计算机世界的领袖候选人了.“编写一次,永远运行”(并且无论在哪里)一度成为java诱人但却真实的口号.
那么为什么说java只是“似乎”是一个好东西呢?跨平台理论的发展很好地证明了这一点.我们看到,将java代码从一个平台移植到另一个平台—java这个语言最重要与最受吹捧的特点—并不象宣传的那样容易.任何java平台都有其自己的虚拟机,它可以理解通用的字节代码,并且及时地将其编译为本地代码.矛盾由此产生,不同虚拟机的执行也很不相同,这一点足以使代码的移植比预期耗费多得多的时间,而且基本上不是自动的.
那么,java模型的好处在哪里呢?首先,java是一种先进的.面向对象的语言,包含了预防常见错误的内置功能,并在仅仅一两个对象中携带了许多经常需要用到的功能.与c++相比,java更易于读写,不容易出错,而且更加美观,但是它速度较慢也不太灵活.想实现在任何软件与硬件平台上都可虚拟移植,java尽可能少地使用了公分母模型,也就是说放弃了将每个平台开发到极限的能力.第二,虚拟机的概念本身就是可移植与可共用的,因此对于分布式环境来说是理想的.java对于为非windows平台开发代码是最好的语言.
那么对于windows平台来说,java又怎么样呢?让java适应windows是不可能的,这是由于sun的许可约束问题.但是java实在是太吸引人了,microsoft比谁都能更清楚这一点.因此,microsoft又一次采取了“拿来主义”的手法,很好地利用了java 的众多特性,隆重推出了windows平台的新锐力量,它就是相当简单但十分强大的面向对象的c#编程语言.c#超过了c++,它天生就包含了.net框架类库中的所有类,并使语法简单化.
可以说,java具备的优点,c#都可以或者都将具备!
三.c#的主要特征
c# 是.net的关键性语言,它是整个.net平台的基础.与c#相比,.net所支持的其它语言显然是配角身份.比如,vb.net的存在主要是对千万个vb开发人员的负责.对于jscript.net与 managed c++ 也同样可以这么说,后者只是增加了调用.net类的c++ 语言.c#是唯一没有在设计思路中加入了前辈语言某种遗传的新事物.
.net平台将 c#作为其固有语言,重温了许多java的技术规则.c#中也有一个虚拟机,叫做公用语言运行环境(clr),它的对象也具有同样的层次.但是 c#的设计意图是要使用全部的win32 api甚至更多.由于c#与 windows的体系结构相似,因此 c# 很容易被开发人员所熟悉.
java的目的是要拯救分布式计算世界,c# 则不同.c#本质上是c++的进化产物,使用了包括声明.表达式及操作符在内的许多c++特征,但是 c#还有更多的增强功能,比如类型安全(type-safe).事件处理.碎片帐集.代码安全性等.在c#中,除了可以使用许多api,更能使用.net类.特别地是,我们可以处理com的自动化与c类型的函数.
... 下一页