Cita:
Empezado por Enan0
Simplemente un comentario sobre algo que he leido hace algun tiempo en algun manual de delphi en este decia que la utilizacion de "AS" no era muy conviente porque producia un consumo de memoria, talves excesivo en su defecto recomendaba usar
|
Hola Enan0.
Si tenés razón, en este caso es más eficiente usar el cast en forma directa, gracias por la observación.
Pero hay que aclarar que no siempre es "seguro" ese tipo de conversión directa, hay casos en que nos
conviene asegurarnos el tipo antes de realizar la conversión.
Algo que leí sobre el operador 'as':
"El operador as se puede descomponer en instrucciones más simples..." (Ian Marteens)
Por ejemplo:
Código Delphi
[-](ActiveControl as TButton).Click
Es equivalente a:
Código Delphi
[-]
if ActiveControl is TButton then
TButton(ActiveControl).Click
else
raise EInvalidCast.Create('Tipo inválido');
En cambio este código es redundante y por tanto ineficiente:
Código Delphi
[-]
if ActiveControl is TButton then
(ActiveControl as TButton).Click
Lo correcto sería:
Código Delphi
[-]
if ActiveControl is TButton then TButton(ActiveControl).Click;
Un saludo.