delphi

Páginas: 44 (10932 palabras) Publicado: 11 de abril de 2013
Los genéricos en Delphi 2009

Los genéricos en Delphi 2009
Con propina sobre rutinas anónimas y las referencias de rutina
por Sébastien Doeraene (sjrd.developpez.com)
traducción por Juan Badell
Fecha de Publicación: 13 noviembre 2008
Última puesta al día:

¡ Hace tiempo que los esperábamos ! Finalmente están aquí: los genéricos en Delphi Win32. Estas
pequeñas maravillas llegan conDelphi 2009. Este tutorial te da opción a comprenderlos,
aprender a utilizarlos y, a continuación, diseñar tus propias clases genéricas.
Vuestros comentarios, críticas, sugerencias, etc. serán bienvenidos en el blog.

I. Introducción
I-A. Requisitos
Este tutorial no es para el principiante en Delphi que nunca ha practicado la programación
orientada a objetos. Requiere conocer el lenguaje deDelphi antes, y un importante conocimiento
de la POO.
En cuanto a los genéricos, no es necesario el conocimiento previo para la correcta comprensión y
asimilación de este tutorial. Sin embargo, dado el número de artículos sobre los genéricos
existentes en otros idiomas, no cubriré en detalles las preguntas como "¿Cómo usar los genéricos
correctamente?". La siguiente sección introduce rápidamenteal lector en el concepto de los
genéricos, pero si usted no sabe aún lo que es, la mejor comprensión se hará siguiendo este
tutorial a través de ejemplos. Aquí hay algunos artículos que tratan los genéricos en otros
lenguajes / plataformas. Los conceptos son siempre los mismo, y gran parte de su puesta en
escena también.




Les génériques sous Delphi .NET por Laurent Dardenne ;Generics avec Java Tiger 1.5.0 por Lionel Roux ;
Cours de C/C++ - Les template por Christian Casteyde.

I-B. ¿Qué son los genéricos?
Los genéricos, a veces llamados parámetros genéricos, un nombre que permite presentarlos
mucho mejor. A diferencia del parámetro de una función (argumento), que tiene un valor, el
parámetro genérico es un tipo. Y un parámetro genérico parametrizado una clase, uninterfaz, un
record, o, con menor frecuencia, un método.
Para dar inmediatamente una idea más clara, este es un extracto de la clase TList, usted
puede encontrarlo en la unidad Generics.Collections.pas.
¡Sí!, es posible tener puntos en el nombre de una unidad (sin contar el del .pas). No tiene
nada que nada que ver con la noción de espacio de nombres de .NET ni paquete de Java.
Es sólo que ‘.’tiene el mismo valor que ‘_’ a este nivel, simplemente es parte del
nombre.
type
TList = class(TEnumerable)
// ...
public

Pág. 1 de 29
Copyright © 2008 - Sébastien Doeraene – traducción por Juan Badell. No está permitida la reproducción, incluso parcial, que puedan hacer de esta
página web y todo su contenido: textos, documentos, imágenes, etc, sin el permiso expreso del autor. De locontrario incurre la ley hasta 3 años de
prisión y hasta 300.000 € por daños y perjuicios.
http://sjrd.developpez.com/delphi/tutoriel/generiques/

Los genéricos en Delphi 2009
// ...
function Add(const Value: T): Integer;
procedure Insert(Index: Integer; const Value: T);
function Remove(const Value: T): Integer;
procedure Delete(Index: Integer);
procedure DeleteRange(AIndex, ACount:Integer);
function Extract(const Value: T): T;
procedure Clear;
property Count: Integer read FCount write SetCount;
property Items[Index: Integer]: T read GetItem write SetItem; default;
end;

Puede observar directamente lo extraordinario del tipo T. Pero, ¿es esto realmente un tipo? No, es
un parámetro genérico. Con esta clase, si necesito una lista de números enteros, utilizo
TList, ¡en lugarde un "simple" TList con muchos operadores necesarios en el código!
Los genéricos nos permiten, por tanto, de alguna manera, declarar una serie de clases
(potenciales) de una sola vez, o más exactamente declarar un modelo de clase, pero con uno (o
varios) tipos como parámetro, que se pueden cambiar a voluntad. A cada nueva instancia con un
nuevo tipo real, es como si estuviera escribiendo...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Delphi
  • Delphi
  • Delphi
  • Delphi
  • delphi
  • Delphi
  • Delphi
  • Delphi

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS