![]() |
Objekt as TKlasse - und nur TKlasse?
Hallo.
Ich möchte mit einem Assert sicherstellen, dass ein übergebener Parameter ein Objekt genau einer Klasse ist (und kein Nachfahre). Wie kann geprüft werden, ob ein Objekt genau eine bestimmte Klasse hat? Beispiel:
Delphi-Quellcode:
procedure MachWas(const Objekt: TKlasse);
begin Assert(Objekt is TKlasse); // TKlasse und nur TKlasse, keine Nachfahrklasse. // ... end; |
Re: Objekt as TKlasse - und nur TKlasse?
Dies wäre eine Variante:
Delphi-Quellcode:
Assert(Objekt.ClassNameIs('TMyClass'));
|
Re: Objekt as TKlasse - und nur TKlasse?
Also AFAIK prüft is genaz das. Wenn man prüfen will, ob ein Objekt ein Nachfahre einer Klasse ist, muss man einen eignen "class of"-Typ deklarieren.
Delphi-Quellcode:
[edit]@Muhkuh: Stimmt :stupid: [/edit]
TKlasse = class
end; TKlassenClass = class of TKlasse; // Ist Object Nachfahre einer Klasse? assert (object is tklassenclass); // Ist Object genau die Klasse? assert (object is tklasse); |
Re: Objekt as TKlasse - und nur TKlasse?
Du hast zwei t zuviel :P
|
Re: Objekt as TKlasse - und nur TKlasse?
Zitat:
Zitat:
Zitat:
|
Re: Objekt as TKlasse - und nur TKlasse?
Zitat:
"IS" gibt sehr wohl bei Nachfahren auch true zurück. Du musst ![]()
Delphi-Quellcode:
mfG
if (DeinObjekt.ClassType = TKlasse) then
begin .. end; mirage228 |
Re: Objekt as TKlasse - und nur TKlasse?
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz