終於體會到了,在.net開發不用C#那純粹是自找麻煩阿

來源:互聯網
上載者:User
 

我是個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#活得真累



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.