在我的印象中一直将C#归结为在C++基础上,参考JAVA语言设计的一种语言;
今天仔细的看了看C#的特性,发现这样的认识有失偏颇;
为了便于认识我们将一种计算机语言分成三部分比较;
基本的语法;
组织结构(面向对象);
特定功能;
ü 这三种语言在基本的语法结构上都是非常的想象的;
ü C#和JAVA在面向对象方面是很相似的,抛开关键词的不同(继承的关键词,最终化的关键词等);
n 类型,
n 接口,
n 虚类,
n 类型间的单继承,
n 接口间的多继承,
n 类和接口间的多实现
可以说C#简直就是照搬了JAVA的面向对象的特性;
ü 特殊功能方面;C#为了保留C++强大的功能做出了不懈的努力,例如区分形式参数的值调用,引用调用等等;个人感觉为了保留指针能提供的功能C#做出了不懈的努力;委托实际上是函数指针的一种非指针实现;还有在类型级别加入对事件的支持;都能看到C#做出了很多改变;
个人感觉,C#是想把JAVA简单的面向功能部分和C++强大灵活的功能集成在一起,借助于.NET基类库和通用语言运行时实现一个完美的语言;
可是我感觉她走了C++的老路,功能是挺多,挺强;但是没有给人有重点的感觉;反观JAVA掌握JAVA是一件令人愉快的事情,因为它目的明确,不会有太多让人混尧的功能;C#为了最大程度的兼容C++做出了不懈的努力;可是我觉得他要超越java语言还需要做得更简洁化;
让使用者通过使用来完成某些功能,而不是在语言级别添加对某些具体功能的支持;
C#有点剑走偏锋了!