Novidades
Generics no RAD Studio 2007
Entendendo e utilizando Generics em suas aplicações .NET
Generics é um termo utilizado para se definir estruturas com tipos genéricos, para representar classes, métodos de classe etc; podendo os mesmos serem parametrizados com qualquer tipo de dado. O conceito do Generics já existe
Algumas pessoas podem até achar que generics é algo parecido com instanciamento de classes descendentes em tipos ancestrais ou algo similar feito com interfaces, mas você poderá conferir em nosso artigo que esse maravilhoso recurso vai muito além do que o programador Delphi está acostumado. Ele irá simplesmente transformar a vida de todos os programadores em Delphi.
Esse recurso atualmente está disponível apenas para plataforma .NET. Já respondendo a pergunta de quando estará disponível para Win32, ainda não temos nada definido pela CodeGear. Mas já sabemos que em
Mais como assim? Qualquer tipo de dado?
Imagine que a partir de agora os tipos de dados de seus parâmetros, por exemplo, podem ser definidos em runtime, acredita? É verdade caros amigos delphianos, e é exatamente isso que nos dará a flexibilidade para fazer coisas absurdas em nossa linguagem.
Para ficar mais claro vamos criar uma nova aplicação utilizando o menu File|New>VCL Forms Application – Delphi for .NET no CodeGear RAD Studio 2007 e desenhar a interface da Figura 1. Salve o formulário como “uPrincipal.pas” e modifique seu Name para “frmPrincipal”. O projeto salve como “Generics.dpr”. Em seguida vamos adicionar uma nova Unit utilizando o menu File|New>Other>Delphi for .NET Projects>New Files>Unit, para definir a estrutura presente na Listagem 1 e salve-a como “untPessoa.pas”.
Agora imaginem o seguinte exemplo: iremos definir um TList para manipular objetos. Essa classe dá suporte a qualquer tipo de objeto em uma mesma lista, porém temos muitos problemas de desempenho através de conversões implícitas. Para recuperar as informações da lista precisamos sempre utilizar o recurso de typecast para manipular os objetos, além disso, se definirmos uma lista, por exemplo, para manipular objetos de uma classe chamada TPessoa não conseguimos garantir que serão inseridos apenas objetos derivados dessa classe. Com isso podemos inserir qualquer objeto em uma lista do tipo TList e como não temos restrição do tipo adicionado se fizermos alguma besteira, só vamos saber em runtime no momento de manipular o objeto através do typecast.
Figura 1. Exemplo de tela para teste da classe TList
Listagem 1." [...] continue lendo...