Os genéricos, uma poderosa adição ao Delphi, foram introduzidos no Delphi 2009 como um novo recurso de idioma. Genéricos ou tipos genéricos (também conhecidos como tipos parametrizados), permitem definir classes que não definem especificamente o tipo de determinados membros de dados.
Como exemplo, em vez de usar o tipo TObjectList para ter uma lista de qualquer tipo de objeto, no Delphi 2009, o Genéricos. A unidade de coleções define um TObjectList mais fortemente tipado.
Às vezes, os genéricos são chamados de parâmetros genéricos, um nome que permite apresentá-los um pouco melhor. Ao contrário de um parâmetro de função (argumento), que possui um valor, um parâmetro genérico é um tipo. E parametriza uma classe, uma interface, um registro ou, com menos frequência, um método... Com, como bônus, rotinas anônimas e referências de rotina
Delphi tList, tStringList, tObjectlist ou tCollection podem ser usados para construir contêineres especializados, mas requerem a conversão de tipos. Com os genéricos, a conversão é evitada e o compilador pode detectar erros de tipo mais cedo.
Depois de escrever uma classe usando parâmetros de tipo genérico (genéricos), você pode usar essa classe com qualquer tipo e o O tipo que você escolhe usar com qualquer uso dessa classe substitui os tipos genéricos que você usou quando criou o classe.
A maioria dos exemplos que eu vi de genéricos no Delphi usa classes que contêm um tipo genérico. No entanto, enquanto trabalhava em um projeto pessoal, decidi que queria uma Interface contendo um tipo genérico.