Not Nil Verknüpfung in Delphi

7

Welche Delphi-Funktion behauptet, dass ein Objekt nicht Null ist?

    
Peter Turner 29.09.2008, 15:43
quelle

4 Antworten

14

Wie knight_killer oben gezeigt, verwenden Sie die Assert() -Funktion und stellen fest, dass Assigned(obj) ist true . Wie in den meisten kompilierten Sprachen werden Assertions nicht ausgeführt (oder sind sogar in der Compilerausgabe enthalten), es sei denn, Sie haben sie ausdrücklich aktiviert. Sie sollten sich daher nicht auf Assertions für Builds im Releasemodus verlassen.

Sie können natürlich einfach nach nil , a la Assert(obj <> nil) suchen. % Co_de% erzeugt jedoch die exakt gleiche Compiler-Ausgabe und hat den zusätzlichen Vorteil, dass es auch auf Zeiger auf Klassenmethoden wirkt (die in Wirklichkeit ein Zeigerpaar sind, eins für die Methode und das andere für die Klasseninstanz), Deshalb ist es eine gute Angewohnheit, Assigned() zu benutzen.

    
Mihai Limbășan 29.09.2008, 15:58
quelle
10

Nicht sicher, was Sie meinen, aber Assert(Assigned(MyObject)); ist ziemlich kurz und einfach zu bedienen.

    
Roman Ganz 29.09.2008 15:48
quelle
7

Zugewiesen (AObject) wird Ihnen sagen, ob ein Objekt Null ist oder nicht.

Vielleicht erwähnenswert ist die Tatsache, dass wenn Sie ein Objekt mit AObject freilassen. Stellen Sie also sicher, dass Sie das Objekt mit FreeAndNil (AObject) freigeben.

    
T. Kaltnekar 30.09.2008 07:33
quelle
3

wenn Assigned (MyObject) dann  ...

    
Bruce McGee 29.09.2008 15:48
quelle

Tags und Links