Capitulo 17
O C# fornece genéricos para eliminar a necessidade de CASTING ( Informa explicitamente ao compilador que você pretende fazer a conversão e que você está ciente de que pode ocorrer perda de dados) melhorar a segurança, reduzir a quantidade de BOXING (Boxing é o processo de converter um “Value Type” para o tipo de object ou a qualquer tipo de interface implementada por este tipo de valor “Reference Type”.) necessária e facilitar a criação de classes e métodos generalizados.
Classes e métodos genéricos aceitam parâmetros de tipo, que especifica os tipos de objetos em que operam.
Declaração de classe genérica:
Ex. class Generica<T> “T” é o parâmetro de tipo
{
...
}
Classes genéricas X generalizadas:
É importante saber que uma classe genérica é diferente de uma classe generalizada.
Podemos pensar em uma classe genérica como novas classes de tipo especifico sob demanda.
Podemos pensar em uma classe genérica como uma classe que define um template que é, utilizado pelo compilador para gerar novas classes de tipo especifico sob demanda.
Genéricos e Restrições:
Se você estiver definindo uma classe ImprimirColecao e quiser garantir que todos os objetos armazenados na classe tenha um método Imprimir. É possível especificar essa condição utilizando uma restrição.
Crie uma classe genérica:
Podemos encontrar varias classes genéricas “prontas” através do namespace System.Collections.Generic
A teoria das arvores binarias:
Definição: Arvore binaria é uma estrutura de dados utilizada para diversas operações, incluindo classificar e pesquisar dados de forma “rápida”.
Arvore binaria podem estar vazias, ou conter três elementos:
- Um dado: que é conhecido como nó, e - Duas subárvores (Subarvores esquerda e subarvores direita)
* O verdadeiro poder da arvore binaria é a ordenação dos dados de forma rápida. Construa uma classe de arvore binaria com genéricos:
A classe de arvore binaria pode ser útil em varias aplicações. V, implementara como uma biblioteca de