que tienen estas clases y un procedimiento:¿Cómo puedo determinar si un objeto Delphi es de una clase específica y no de una clase descendiente?
TParent = class(TObject);
TChild1 = class(TParent);
TChild2 = class(TParent);
Procedure DoSomething(obj:TParent);
Lo que me gustaría hacer es cuando obj
es una TParent
y no un descendiente lanzar una excepción.
pensé en hacer algo como esto:
if obj.classname = TParent.classname then raise exception.create....
pero parece un poco hacker (TM)
Más: lo que pretendía es capaz de pasar objetos que compartían propiedades/procedimientos en común. Después de pensarlo más, el objeto TParent no es realmente necesario en absoluto, lo que necesitaba era un objeto de interfaz que se muestra en mi respuesta.
A partir de las respuestas ya dadas, ciertamente hay casos válidos para querer esto pero no tantos. ¿Por qué necesitas saberlo? –
+1 por pensar que fue un truco. Como regla general, si estás haciendo cosas relacionadas con el tipo con * strings *, probablemente estés haciendo algo mal. –