`
javasee
  • 浏览: 924147 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

西行漫记(16):C#长得太丑了

阅读更多
几天程序写下来,觉得这C#实在是丑到不能行……这几天一直在战的一个事情,譬如说我把一个接口变成抽象类,好家伙,先得把所有的方法前面加上abstract,然后所有子类的实现方法加上override,一通好改……更可气的是我这个步骤是为了把它分成两个接口,等到分完了抽象类一删除,又得把所有子类上的实现方法去掉override,又是一通好改……这家伙要是搁项目里有十几二十个子类,那工作量是相当大亚~~~~所以还是一开始就考虑清楚,到底要抽象类还是要接口……都是C#给逼得。

这还不算哪,没过一会给我整出个protected internal来,唬得我是一愣一愣的,这算哪门子的事呢?protected而又internal,这清晰是够清晰了,纯然不顾我的感受亚。匿名内部类也没有,每个visitor我都得正经八百的创建一个类,明知道这个类下八辈子也不会有人用它第二次。得亏还有delegate哟~~~然则这1.1里delegate的语法也忒丑了,好家在2.0还有改进……1.1就不用数落它了,没有泛型亚……

其实不光光是C#了……每回看着一个class想要mixin可就是mix不in的时候,都觉得粉郁闷,annotation写几个metadata还非得在容器里才有机会解释。没有delegate的Java,functor前后为匿名内部类写出5行代码,functionality就一行。有了delegate的C#也好不到哪儿去,delegate倒是挺像closure的,然则这context不对呀……用三种不同的high order实现同一个功能,结论是哪个都不好看,跟堆一堆对象也差不多。虽说对象不那么容易重用,可就那语法估计也没谁愿意重用那些functor。

别的就啥也不说了……其实要多态,还不如在对象里面保存一个变量,变量里面是一段程序,运行到那就把这段程序拿出来eval一下,不比创建几个子类强么……

(不是要挑起语言大战……写C#写得郁闷了,稍微发泄一下……莫要当真,莫要当真。)
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics