Puoi convertire una classe in una delle sue sottoclassi (denominata cast di tipo) usando la sintassi NewReference := type_to_cast_to[Reference], dove type_to_cast_to è il tipo desiderato. Queste sono espressioni fallibili poiché la conversione fallisce se l'oggetto non può essere convertito in quel tipo, ad esempio se la classe è un tipo diverso dalla sottoclasse.
Nell'esempio, TaggedDevice di tipo creative_device_base viene convertito in customizable_light_device per consentirne l'uso di funzioni specifiche. Se TaggedDevice non è compatibile con il dispositivo Luce personalizzabile, allora il metodo TurnOn() non verrà chiamato.
if (LightDevice := customizable_light_device[TaggedDevice]):
LightDevice.TurnOn()