AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Syntax: spitze Klammern - wie nennt man das?
Thema durchsuchen
Ansicht
Themen-Optionen

Syntax: spitze Klammern - wie nennt man das?

Ein Thema von SearchBot · begonnen am 4. Feb 2019 · letzter Beitrag vom 4. Feb 2019
Antwort Antwort
SearchBot

Registriert seit: 27. Jun 2004
Ort: N-W vom Bodensee
311 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Syntax: spitze Klammern - wie nennt man das?

  Alt 4. Feb 2019, 10:46
Delphi-Version: 10.1 Berlin
Hallo,

ich beschäftige mich gerade mit JSON.
Dabei habe ich in einem Quelltext folgende Syntax entdeckt, die ich in Delphi nie zuvor gesehen habe:
Code:
class(TDictionary<string,TdJSON>)
oder
Code:
function TdJSON.GetEnumerator: TList<TdJSON>.TEnumerator;
Also das mit den spitzen Klammern.

Wie nennt man das (nur dann kann ich mir ergänzende Überlegungen googlen)?

Wenn es diese Syntax in Delphi nicht gäbe, wie würde es sonst programmiert aussehen?
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#2

AW: Syntax: spitze Klammern - wie nennt man das?

  Alt 4. Feb 2019, 10:51
Das sind Generics (gibt es seit Delphi 2009)
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#3

AW: Syntax: spitze Klammern - wie nennt man das?

  Alt 4. Feb 2019, 11:31
Um die zweite Frage zu beantworten:

class(TDictionary<string,TdJSON>) entspricht TStrings/TStringList, bei der jeder Eintrag ja auch vor Delphi 2009 jeweils ein Objekt enthalten konnte.

Unterschied zu Generics: alle Methoden zum Hinzufügen / Lesen der Einträge eines TDictionary sind typsicher. Wollte man das in Delphi ohne Generics nachprogrammieren, würde man eine Klasse TStringListdJSON schreiben mit Methoden, die nur den Typ TdjSON als Objekt erlauben.

Delphi-Quellcode:
type
TStringListdJSON = class(TObject)
private
  FList: TStrings; // enthält eine nur "intern" verwendete TStringList-Instanz
...

end;
Michael Justin
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.574 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Syntax: spitze Klammern - wie nennt man das?

  Alt 4. Feb 2019, 13:04
Um genau zu sein wäre das eine TStringList mit jeweils einem Objekt, an das eine Liste von Objekten vom Typ TdJSON gehängt wird. Denn es ist ja eine 1:n Beziehung.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.049 Beiträge
 
Delphi 2009 Professional
 
#5

AW: Syntax: spitze Klammern - wie nennt man das?

  Alt 4. Feb 2019, 17:36
Und um genau zu sein ist class(TDictionary<string,TdJSON>) eher ungeeignet, der Autor des Codes hätte besser TObjectDictionary mit doOwnsValues verwenden sollen.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#6

AW: Syntax: spitze Klammern - wie nennt man das?

  Alt 4. Feb 2019, 19:58
Und um genau zu sein ist class(TDictionary<string,TdJSON>) eher ungeeignet, der Autor des Codes hätte besser TObjectDictionary mit doOwnsValues verwenden sollen.
Wie willst du das ohne weiteren Kontext beurteilen können?

Das mit dem doOwnsValues nimmt man nur dann, wenn man das Lifetime-Management an diese Collection delegieren möchte. Das will man aber nicht in jedem Fall und ob es sich hier um den einen ode anderen Fall handelt kann man gar nicht sehen.
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz