2009-09-08 5 views
8

Ich bin ziemlich frustriert. Ich benutze Delphi 2009 und war sehr glücklich über die Einbeziehung von Generika in diese Version von Delphi. Am Anfang hat alles super geklappt, aber jetzt, wo ich überall Generika benutze, stoße ich auf ein Problem nach dem anderen - meistens mit internen Fehlern, wo ich nicht einmal sehe, wo genau sie entstehen. Ich habe versucht, den Code mehrmals zu restrukturieren, um Probleme mit Generika zu vermeiden, aber immer wieder neue Probleme zu lösen.Sind Generics in D2009 in großen Projekten verwendbar?

Jetzt habe ich beschlossen, generics insgesamt zu entfernen und einige dynamische Casts zu verwenden, um meine Klassen zu spezialisieren. Ich bin nicht besonders begeistert, aber ich sehe einfach keine andere Möglichkeit. Ich kann meinen Tag nicht damit verbringen, die internen Compilerfehler von Delphi aufzuspüren ...

Wer benutzt Generika in einem großen Projekt, ohne solche Probleme zu haben? Ist es vielleicht meine Schuld? Oder ist es einfach nicht möglich, sie in komplexen Projekten zu verwenden?

Ich hoffe, D2010 behebt all diese Sachen.

+1

Autsch ... interne Compilerfehler? Das ist definitiv ein großes No-No für Delphi. Ich habe Delphi seit 10 Jahren nicht mehr benutzt, aber was du sagst, scheint schrecklich. –

+0

Mit der Einführung von Delphi 2 (vor einer langen Zeit), die die erste Version von Delphi mit einem 32-Bit-Compiler war, hatte ich auch eine Reihe interner Fehler. Scheint so, als hätte Borland/Inprise/... Probleme, gut getestete neue Funktionen in neuen Versionen ihrer Compiler zu versenden. – Lucero

+2

Dies ist kein Diskussionsforum. Hast du eine echte Programmierfrage? – Argalatyr

Antwort

12

Ich verwende Generics ausführlich in Delphi 2009, und ich kann sagen, dass es nicht einfach ist, da Sie häufig um einen ICE arbeiten müssen. Schlimmer noch, Generika haben sogar Probleme mit dem Linker, d. H. Sie können sie nicht wirklich in Paketen verwenden (außer für C++ Builder-Pakete).

All dieses Problem scheint in Delphi 2010 verschwunden zu sein; Ich sah kaum einen ICE wegen Generika. Ich brauche meinen Code, um mit 2009 und 2010 zu arbeiten :(

7

Generics Unterstützung in D2009 war wirklich schlecht auf den ersten. Update 3 behebt viele Dinge, aber nicht alles, und lässt mindestens einen ernsten Fehler in Generics. Collections.pas In mancher Hinsicht wurde es sogar noch schlimmer, da Sie jetzt einen Syntaxfehler bekommen, wenn der Compiler an einem generischen Konstrukt erstickt, Sie werden oft einen internen Compilerfehler bekommen und Sie wissen nicht, was ihn verursacht.

Es wurde für 2010 ein wenig verbessert. Es gibt immer noch ein paar Generika-Probleme in ziemlich obskuren Fällen, aber sie sind im Allgemeinen sicher zu verwenden, solange Sie keine Pakete verwenden oder Generika innerhalb der Klasse setzen Helfer oder seltsame Dinge wie das.

Fazit: Wenn Sie sie verwenden möchten, aktualisieren Sie auf 2010.

Verwandte Themen