2009-09-08 47 views
8

我很沮喪。我使用的是Delphi 2009,對於在這個版本的Delphi中包含泛型非常高興。一開始,一切都很順利,但現在我在所有地方都使用泛型,遇到問題後會遇到問題 - 大多數情況下會出現一些內部錯誤,我甚至不知道它們究竟是由什麼引起的。爲了避免泛型的問題,我嘗試多次重構代碼,但總是遇到新的問題。D2009中的泛型是否可用於大型項目?

現在我決定全部刪除泛型並使用一些動態強制轉換來專門化我的類。不是很興奮,但我只是沒有看到另一種選擇。我不能花一天時間跟蹤Delphi的內部編譯器錯誤...

是否有人在大型項目中使用泛型而不會遇到這樣的問題?也許是我的錯嗎?還是僅僅是不可能在複雜的項目中使用它們?

我希望D2010修復所有這些東西。

+1

問題內部編譯器錯誤?這絕對是德爾福的一大禁忌。我還沒有使用德爾福10年左右,但你說的話似乎很糟糕。 – 2009-09-08 10:17:48

+0

隨着Delphi 2(一段時間之前)的推出,這是Delphi 32位編譯器的第一個版本,我也有一堆內部錯誤。看起來像Borland/Inprise/...在編譯器的新版本中運行經過良好測試的新功能時遇到了麻煩。 – Lucero 2009-09-08 10:18:24

+2

這不是一個論壇。你有真正的編程問題嗎? – Argalatyr 2009-09-08 10:24:07

回答

12

我在Delphi 2009中廣泛使用泛型,我可以說這並不容易,因爲您經常需要解決ICE問題。更糟糕的是,仿製藥甚至搞不清鏈接器,即你不能真正在包中使用它們(除了C++ Builder包)。

所有這些麻煩在Delphi 2010中似乎沒有了;由於仿製藥,我幾乎沒有見過ICE。我需要我的代碼在2009和2010兩個版本中工作:(

7

D2009中的泛型支持起初非常糟糕,Update 3修復了很多事情,但不是所有事情,並且在泛型中至少留下了一個嚴重的錯誤。 Collections.pas在某些方面,它實際上變得更糟了,因爲現在不是在編譯器扼殺某個泛型構造時給你一個語法錯誤,你經常會得到一個內部編譯器錯誤,你不知道是什麼造成了它。

2010年已經有所改進。在相當晦澀的情況下,仍然存在一些與泛型相關的問題,但只要您不使用軟件包或在類中放置泛型,它們通常可以安全使用助手或類似的奇怪事物。

底線:如果要使用它們,請升級到2010.

相關問題