Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #15  
Antiguo 03-01-2008
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.610
Poder: 32
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile

¡Hola a todos!

Vaya lío con esto del operador As. Primero que nada, va mi sugerencia de utilizar el término molde de tipo para referirse a "type cast".

Como ya lo aclaró Antonio, el molde de tipo con el operador As, presenta dos verificaciones de seguridad; una de compilación y otra en tiempo de ejecución. Al compilar se verifica que el tipo de dato usado y el tipo de dato declarado del objeto sean clases con relación jerárquica lineal (padre-hijo, abuelo-nieto, misma clase, etc., pero no tío-sobrino, primo-primo, etc.). En tiempo de ejecución, se realiza una verificación de polimorfismo: que el objeto sea de la clase indicada, de una clase derivada de ella o un puntero nulo (Nil).

Mientras que un molde de tipo clásico (yo los conocía desde Turbo Pascal), al estilo "Clase (Objeto)", no impide que el programa compile y se ejecute la sentencia donde aparezca tal expresión. Pero eso sí, el resultado puede ser impredecible si no estamos completamente seguros de lo que estamos moldeando.

Me permito añadir aquí una humilde traducción al español de lo que dice la ayuda de Delphi sobre el operador As:

Cita:
El operador as efectúa moldes de tipo verificados. La expresión

Objeto as Clase

devuelve una referencia al mismo objeto que Objeto, pero con el tipo dado por Clase. En tiempo de ejecución, Objeto debe ser una instancia de la clase denotada por Clase o de una de sus descendientes, o bien Nil; de otra forma se eleva una excepción. Si el tipo declarado de Objeto no está relacionado a Clase —es decir, si los tipos son distintos y uno no es ancestro del otro—, ocurre un error de compilación.
(Saludo as TAbrazo).Ejecutar;

Al González.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Operador LIKE eldiegofg SQL 2 24-08-2007 23:30:59
Operador LIKE en access maurogambo Tablas planas 5 06-09-2006 14:20:42
Operador IS Aztaroth C++ Builder 8 04-08-2004 14:44:27
Operador *= febito SQL 1 09-06-2004 21:26:43
Operador @ Tanix PHP 2 27-10-2003 10:07:14


La franja horaria es GMT +2. Ahora son las 21:09:40.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi