一、C#、C++和Java
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
继承
(C#)单继承,可实现多个接口
(C++)支持多继承,
(JAVA)单继承,可以实现多个接口
接口实现
(C#)通过“interface”关键词
(C++)通过抽象类
(JAVA)通过“interface”关键词
内存管理
(C#)由运行时环境管理,使用垃圾收集器
(C++)需要手工管理
(JAVA)由运行时环境管理,使用垃圾收集器
指针
(C#)支持,但只在很少使用的非安全模式下才支持。通常以引用取代指针
(C++)支持,一种很常用的功能。
(JAVA)完全不支持。代之以引用。
源代码编译后的形式
(C#).NET中间语言(IL)
(C++)可执行代码
(JAVA)字节码(.class)
单一的公共基类
(C#)是 Object
(C++)否
(JAVA)是 Object
异常处理
(C#) 提供异常处理
(C++) 返回错误
(JAVA) 提供异常处理。