System.SysUtils.FreeAndNil
Delphi
procedure FreeAndNil(const [ref] Obj: TObject);
Propriétés
Type | Visibilité | Source | Unité | Parent |
---|---|---|---|---|
procedure | public | System.SysUtils.pas | System.SysUtils | System.SysUtils |
Description
Libère une référence d'objet et remplace la référence par nil (Delphi) ou NULL (C ++).
Utilisez FreeAndNil pour vous assurer qu'une variable est nil (Delphi) ou NULL (C ++) après avoir libéré l'objet auquel elle fait référence.Passez n'importe quelle variable qui représente un objet comme paramètre Obj.
Avertissement: Obj doit être une instance d'un descendant de TObject.
C ++ propose désormais deux modèles d'implémentation de FreeAndNil qui permettent à la fois les modèles d'utilisation les plus anciens, les plus récents et les meilleurs.L'ancienne utilisation est lorsque vous deviez passer l'adresse d'un pointeur de classe de style Delphi, comme ceci:
TButton* button1;
....
FreeAndNil(&button1);
RAD Studio 10.4 vous permet maintenant de passer une référence à un pointeur de classe de style delphi, comme ceci:
TButton *button1 = <initialization>;
....
FreeAndNil(button1); // No need to take the address of 'button1'
Remarque: La logique utilise un cela signifie que FreeAndNil a été appelé avec un paramètre invalide.
static_asser
t pour garantir que le paramètre passe à FreeAndNil en tant que pointeur vers un type qui dérive de TObject.Si vous voyez l'erreur du compilateur:"'T' must derive from System::TObject"