Atenção: esse artigo tem um vídeo complementar. Clique e assista!

De que se trata o artigo

O artigo aborda como utilizar Generics, com foco em coleções de dados. Será apresentada uma introdução ao recurso e alguns exemplos práticos, inclusive utilizando de recursos anteriores aos Generics para entender seus benefícios.

Para que serve

Generics é um poderoso recurso incluído na plataforma .net desde a versão 2.0 do framework, com ele podemos criar classes e métodos reutilizáveis com mais eficiência, seu uso mais comum estão na manipulação de coleções fortemente tipadas.

Em que situação o tema é útil

A plataforma .net é repleta de suporte a manipulação de coleções de dados, mas foi na versão 2.0 que uma mudança significativa foi realizada, a inclusão de generics possibilitou criar coleções de forma mais eficiente, reduzindo ou eliminando a necessidade de conversão de tipos.

Generics

Generics são hoje uns dos principais fundamentos da programação para a plataforma .NET, de forma que podemos encontrar a aplicação do recurso em várias situações no .NET Framework. Permitem flexibilizar a forma como dados são tratados, pois é definido um parâmetro para um tipo. O artigo apresentará os motivos pelos quais os Generics surgiram, tratando de operações de Box, Unbox e conversões. Nos exemplos práticos os Generics são demonstrados com coleções, como List e Dictionary. Ao final criaremos uma coleção customizada.

Durante o desenvolvimento de um projeto procuramos sempre reutilizar o máximo de códigos, procurando evitar a repetição de linhas e com isso temos um código mais enxuto e flexível para mudanças. Felizmente as linguagens de programação mais utilizadas estão repletas de recursos que nos possibilitam realizar esta tarefa. Conhecer bem o funcionamento da linguagem é um início para criar bons projetos. Apesar de atualmente existir uma série de aprendizados para que o programador possa utilizar das melhores práticas de codificação e sempre ter um código bem elaborado, existem alguns recursos antigos que ainda são considerados poderosos para auxiliar no desenvolvimento de projetos, Generics é um deles.

O .net Framework é uma poderosa tecnologia, sua evolução está em constante crescimento e sempre atualizada com as mais recentes necessidades de desenvolvimento de software, madura e com suporte a uma séria de tecnologias. Hoje proporciona o desenvolvimento para os mais diversos tipos de aplicativos. Atualmente o Visual Studio é um dos IDEs mais poderosos do mercado, e o Visual C# cada vez está melhor, sendo considerada uma das linguagens de programação mais relevantes da atualidade.

Atualmente o .net framework está na versão 4.0, porém foi na versão 2.0 que o assunto deste tutorial foi adicionado ao framework. Nesta versão do .net framework houve diversas melhorias importantes em relação à versão anterior, e uma das mais relevantes e poderosas foi a inclusão de Generics. Com ele podemos criar um tipo especial que recebe como parâmetro outro tipo.

Em C# temos os tipos de valor, chamados de Value Types e os tipos de referência, chamados de Reference Types. Resumidamente, os Value Types armazenam um valor e os Reference Types armazenam uma referência aos dados. Os tipos de valores derivam implicitamente do System.ValueType. Os tipos de referência guardam nele o endereço da memória onde o objeto está registrado, somente o endereço e não o objeto real. Já as variáveis de tipos de valor (Values Type) contêm o próprio objeto.

Generics possibilitam a eliminação de conversão de tipos em sua aplicação. Para entender melhor o que seria uma conversão de tipos, vamos pensar no conceito de Box e Unbox. O Box seria quando adicionamos um elemento em uma caixa e fechamos, o Unbox seria quando abrimos e retiramos o elemento da caixa. Enquanto o elemento está dentro da caixa fechada, outras pessoas não saberão o que tem dentro, porém quando alguém receber a caixa e abrir, pode não estar preparado para seu conteúdo. De forma similar funcionam as conversões de tipos. Eu posso jogar qualquer valor dentro de um objeto (caixa), mas na hora de usar esse valor, eu vou precisar estar preparado para recebê-lo, ou seja, se for um tipo Double que está dentro do objeto, quando abrir a caixa eu preciso convertê-lo para Double e depois inserir em uma variável desse tipo.

...
Quer ler esse conteúdo completo? Seja um assinante e descubra as vantagens.
  • 473 Cursos
  • 10K Artigos
  • 100 DevCasts
  • 30 Projetos
  • 80 Guias
Tenha acesso completo