终于体会到了,在.net开发不用C#那纯粹是自找麻烦阿

来源:互联网 发布:centos 网络yum源 编辑:程序博客网 时间:2024/04/27 16:33

我是个Delphi fans,自从试了一下Delphi8,第二天就删掉了,bug太多,没法用,只好不太情愿地使用着C#,Delphi2005出来了,就又装了一个试用版用了一下,感觉不错,有点欣喜若狂,就准备使用起来,但是随着程序规模的不断扩大,越来越多地发现了至少是令人不爽的地方:

1、占用内存太多,一般来讲写一会程序就要用掉400M,更可怕的是每调试一次,内存就会增加好多,调试完了还不给我释放

2、不稳定,尤其是在界面设计上,经常把我关联的事件从控件上删掉,要么就是莫名其妙的一些错误提示,当然这些提示都是在设计器中的,还不会影响正常的Delphi使用,但是经常刚刚还好的界面我从代码切换到IDE设计机器上,就什么也显示不出来了。

3、内部不一致,能编译通过的,但是且在没错的地方用红色波浪线提示语法错误

明明支持

 var

   a:array of integer;

  a := new(array[5]of integer);

编译没问题,却要给我在线错误提示,让我不爽

a明明是一个数组,我要是写a.length 他就编译不通过,非要写成&Array(a).Length才行

4、对namespace的支持莫名其秒,非要搞个复杂的命名规则,在unit名称上做文章,虽然这样可以获得最大的对传统win32 pas的语法支持,但是感觉这种方式给.net开带来很多不便,结果到了uses地方还要引用全名,而不是名称空间名,还要时时提醒自己用到的是别的.net开发的dll还是delphi开发的dll,对同一种东西非要搞出两套标准,真是让我恼火

5、debug太差

对比Delphi7简直是倒退

在win32下,可以调试程序中的变量,到了.net  那个watch窗口就成了摆设,根本没用

只能看看local var窗口中的东西,然后再一层一层地找下去

6、更要命的是如果用Delphi编译了一个dll,你到C#想怎么用怎么用,你到了Delphi里,不行,你还得同时提供*.dcpil文件,否则不让你用,真是没话说了

真是强忍着把那个大程序搞完,虽然用户用起来还行,但是这期间的开发过程真是要命阿。

还好现在出了个Chrom,对他的各个方面还算比较满意的,但是发现好像有个bug

如果这样定义

TA = class

protected

   fa:integer;

end;

TB  = class(TA)

public

  function BBB:TA;

end;

function TB.BBB:TA;

var

  rr:TB;

begin

  rr := new TB;

  rr.fa : =1;

result :=rr;

end;

就是编译不通过,感觉chrom对protected处理有点小问题

最后只能感叹,不用C#活得真累

原创粉丝点击