Generics – C#

Salve, salve amigos

Hoje, vamos falar um pouco sobre este recurso muito interessante e importante na plataforma .NET. O objetivo do artigo é esclarecer de forma bem simples o que é Generics sem estender ou entrar a fundo no tema.

Qual é a finalidade deste recurso?

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.

Onde posso aplicar este recurso?

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 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. Este recurso nos permite flexibilizar a forma como os dados são tratados. Foi na versão 2.o do .Net Framework, que 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.

Veja um exemplo utilizando Generics.

List<int> lista = new List<int>();
lista.Add(10);
lista.Add(20);
lista.Add(30);
lista.Add(40);
lista.Add(50);
 int total = 0;
 for (int i = 0; i <= lista.Count - 1; i++)
 {
   int valor = lista[i]; // sem box e unboxing
 }

Estamos utilizando a coleção List<T> no lugar do ArrayList. Temos um Type Parameter que receberá um tipo, no exemplo utilizamos o int. Estamos resgatando o valor e inserindo em uma variável do tipo int. Note que não houve a necessidade de realizar uma conversão forçada, como a coleção já tem um tipo definido, foi possível passar diretamente o valor para o tipo int.

Observações

Os Generics estão agrupados no namespace System.Collections.Generics. As coleções genéricas são fortemente tipadas, onde somente um tipo de dados pertence à coleção. Ao tentar inserir outro tipo de dados, o compilador é quem vai apresentar o erro, que não mais acontece em tempo de execução, auxiliando muito o programador a evitar que o usuário receba mensagens de erro por falha no desenvolvimento.

A manipulação de coleções é uma das necessidades mais comuns em qualquer linguagem de programação. Um dos mecanismos mais simples para esse tipo de tarefa é o array. No entanto, ele tem algumas limitações, talvez a mais importante seja que o tamanho do array é fixado quando ele é criado. Para suprir essas necessidades e outras, melhorando a manipulação de coleções, o C# trouxe diversos tipos de coleções agrupadas em um namespace chamado System.Collections:

Coleções genéricas e seus equivalentes similares:
ArrayList -> List<T>
Queue -> Queue<T>
Stack -> Stack<T>
HashTable -> Dictionary<K,V>
SortedList -> SortedDictionary<K,V>

 

Hope you have a great week!

Take care

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s