现在的位置: 首页 > 综合 > 正文

C#印象

2013年10月02日 ⁄ 综合 ⁄ 共 850字 ⁄ 字号 评论关闭

不能不务正业了,貌似我工作用到的是C#,不过这里从没提到过半句。

最近看了点C#,就是C#之父Anders的那本书,ECMA334 335都没怎么看,不过感觉还不错。 半夜闲得太无聊,写篇东西记录一下对C#的第一印象。

首先,Anders大人文采大大不如BS大人。坦白地说,这个C# Programming Language读起来有点晦涩,也有点太过规矩,所以读起来不太舒服。不过技术书籍嘛,内容最重要了。

C#是一门"强大"的语言(尤其是和Java相比)。这里的"强大"应该说不是褒义词,是个比较客观的描述。强大意味着更多语言特性,更多样的表达方式。但也意味着,更加少的人可以掌握语言的全部,其中的一些可能给读程序的人造成困惑。之前曾经看过一些讨论语言的紧凑性的问题:语言越"紧凑",人越容易掌握。C语言是紧凑的,C++则是反紧凑的,Java是半紧凑的。从这个角度看,C#也应该是反紧凑的。我比较偏好强大的语言,有玩魔术的坏习惯,所以我还是比较喜欢C#的。

C#的变量跟值之间是松散的引用关系,这个和Java一致,也和Javascript一致。这意味着对象永远不会出现在栈区。而且是垃圾回收。不需要操心泄露。也好,省得麻烦。

C#是强类型的,这意味着编译时类型检查,还有泛型的东西变得格外麻烦,本来C#可以用Object+强转来解决的,不过2.0新加了C++风格的模板泛型,省了一些代码,而且对强类型语言来说,编译时的事情就应该编译时解决吧。

C#的反射,语言级别其实没提供反射,所以好像C#也可以编译成不会反射的代码,这很合理,运行时的事情就应该运行时解决,不应该跟语言搅在一起。

C#的类,这个模仿Java痕迹很重,不过加的料也不少,各种访问权限和多态的关键字,学起来麻烦了TT

C#的命名空间,这个跟Java差不多,不过有一点我很赞同,命名空间没有跟文件和路径搅在一起,这一点上Java太恶心了,作为语言显得太不专业了,居然让语言和文件的物理名称和路径有关。

这是第一印象,我想我会慢慢了解它。让我们好好相处吧 C#.

抱歉!评论已关闭.