Delphi Record Helpers voor sets (en andere eenvoudige typen)

Inzicht in Delphi Class (en Record) Helpers introduceert een functie van de Delphi-taal waarmee u de definitie van een klasse of een recordtype kunt uitbreiden door functies en procedures (methoden) toe te voegen aan bestaande klassen en records zonder overerving.

In de XE3 Delphi-versie werden recordhelpers krachtiger door eenvoudige Delphi-typen zoals tekenreeksen, gehele getallen, enums, sets en dergelijke toe te staan.

De System.SysUtils-eenheid, van Delphi XE3, implementeert een record met de naam "TStringHelper", wat eigenlijk een recordhelper voor strijkers is.

Met Delphi XE3 kunt u de volgende code compileren en gebruiken:

var s: string; beginnen s: = 'Delphi XE3'; s.Replace ('XE3', 'rules', []). ToUpper; einde; 

Om dit mogelijk te maken, werd een nieuwe constructie gemaakt in Delphi "recordhelper voor [eenvoudig type]". Voor tekenreeksen is dit "type TStringHelper = record helper for string". De naam geeft "recordhelper" aan, maar dit gaat niet over het uitbreiden van records - eerder over het uitbreiden van eenvoudige typen zoals tekenreeksen, gehele getallen en dergelijke.

In System en System.SysUtils zijn er andere vooraf gedefinieerde recordhelpers voor eenvoudige typen, waaronder: TSingleHelper, TDoubleHelper, TExtendedHelper, TGuidHelper (en een paar andere). Je kunt aan de naam zien welk eenvoudig type de helper uitbreidt.

Er zijn ook enkele handige open source helpers, zoals TDateTimeHelper.

Opsommingen? Helper voor opsommingen?

opsommingen sets

Tellingen en sets die als eenvoudige typen worden behandeld, kunnen nu ook (in XE3 en later) worden uitgebreid met de functionaliteit die een recordtype kan hebben: functies, procedures en dergelijke.

Hier is een eenvoudige opsomming ("TDay") en een recordhulp: