Los genéricos, una poderosa adición a Delphi, se introdujeron en Delphi 2009 como una nueva característica del lenguaje. Genéricos o tipos genéricos (también conocidos como tipos parametrizados), le permiten definir clases que no definen específicamente el tipo de ciertos miembros de datos.
Como ejemplo, en lugar de usar el tipo TObjectList para tener una lista de cualquier tipo de objeto, desde Delphi 2009, el Genéricos La unidad de colecciones define una TObjectList más fuertemente tipada.
Los genéricos a veces se denominan parámetros genéricos, un nombre que permite introducirlos algo mejor. A diferencia de un parámetro de función (argumento), que tiene un valor, un parámetro genérico es un tipo. Y parametriza una clase, una interfaz, un registro o, con menos frecuencia, un método... Con, como extra, rutinas anónimas y referencias de rutina.
Delphi tList, tStringList, tObjectlist o tCollection se pueden usar para crear contenedores especializados, pero requieren conversión de texto. Con Generics, se evita la conversión y el compilador puede detectar errores de tipo antes.
Una vez que haya escrito una clase usando parámetros de tipo genérico (genéricos), puede usar esa clase con cualquier tipo y el el tipo que elija usar con cualquier uso dado de esa clase reemplaza los tipos genéricos que usó cuando creó el clase.
La mayoría de los ejemplos que he visto de genéricos en Delphi usan clases que contienen un tipo genérico. Sin embargo, mientras trabajaba en un proyecto personal, decidí que quería una interfaz que contuviera un tipo genérico.