Einzelnen Beitrag anzeigen

freimatz

Registriert seit: 20. Mai 2010
1.380 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: System.Length: Warum Integer und nicht Cardinal ?

  Alt 26. Mai 2021, 13:55
Dankesehr für die Antworten.

Das dürfte historisch bedingt sein.
Das war auch meine Vermutung.
...
Das halte ich für falsch.
Wie Günther schon erwähnte gibt es immer wieder Operationen bei denen negative Werte herauskommen.
Eben das High()-1. Oder wenn man Length(A)-Length(B) macht kann es negative Werte geben. Ebenso bei "if Length(A)<Length(B) then ...". Und nicht zuletzt Dein "if Length( LArray) <= LMaxLen then". Ein Vergleich impliziert eine Subtraktion.
Dann muss Delphi den Typ implizit erweitern auf den nächstgrösseren Typ z.B. auf Int64 und das ist unschön. Und deswegen die Warnung.
  Mit Zitat antworten Zitat