C#(C-Sharp)是Microsoft的新编程语言,被誉为“C/C++家族中第一种面向组件的语言”。然而,不管它自己宣称的是什么,许多人认为C#更像是Java的一种克隆,或者是Microsoft用来替代Java的产品。事实是否是这样的呢?
本文的比较结果表明,C#不止是Java的同胞那么简单。如果你是一个Java开发者,想要学习C#或者了解更多有关C#的知识,那么本文就是你必须把最初10分钟投入于其中的所在。
C#的语言规范由Microsoft的Anders Hejlsberg与Scott Wiltamuth编写。在当前Microsoft天花乱坠的宣传中,对C#和C++、Java作一番比较总是很有趣的。考虑到当前IT媒体的舆论倾向,如果你早就知道C#更接近Java而不是C++,事情也不值得大惊小怪。对于刚刚加入这场讨论的读者,下面的表1让你自己作出判断。显然,结论应该是:Java和C#虽然不是孪生子,但C#最主要的特色却更接近Java而不是C++。
表1:比较C#、C++和Java最重要的功能
功能 | C# | C++ | Java |
继承 | 允许继承单个类,允许实现多个接口 | 允许从多个类继承 | 允许继承单个类,允许实现多个接口 |
接口实现 | 通过“interface”关键词 | 通过抽象类 | 通过“interface”关键词 |
内存管理 | 由运行时环境管理,使用垃圾收集器 | 需要手工管理 | 由运行时环境管理,使用垃圾收集器 |
指针 | 支持,但只在很少使用的非安全模式下才支持。通常以引用取代指针 | 支持,一种很常用的功能。 | 完全不支持。代之以引用。 |
源代码编译后的形式 | .NET中间语言(IL) | 可执行代码 | 字节码 |
单一的公共基类 | 是 | 否 | 是 |
异常处理 | 异常处理 | 返回错误 | 异常处理。 |
了解表1总结的重要语言功能之后,请继续往下阅读,了解C#和Java的一些重要区别。