Partilhar via


Interfaces Genéricas

Este tópico fornece uma visão geral das interfaces genéricas que fornecem a funcionalidade comum entre famílias de tipos genéricos.

Interfaces Genéricas

Interfaces genéricas fornecem contrapartes de tipo seguro para interfaces não genéricas para comparações de classificação e igualdade e para a funcionalidade que é compartilhada por tipos de coleção genérica.

Comparações de Igualdade e classificação

No namespace System, as interfaces genéricas System.IComparable<T> e System.IEquatable<T>, assim como suas contrapartes não genéricas, definem métodos de comparações de classificação e comparações de igualdade, respectivamente.Tipos implementam essas interfaces para fornecer a capacidade de executar tais comparações.

No System.Collections.Generic espaço para nome, o IComparer<T> e IEqualityComparer<T> interfaces genéricas oferecem uma maneira de definir uma comparação de pedidos ou de igualdade para tipos que não implementam o System.IComparable<T> ou System.IEquatable<T> interface genérica e eles fornecem uma maneira para redefinir essas relações para tipos que fazer. Essas interfaces são usadas pelos métodos e construtores de muitas das classes coleção genérica.Por exemplo, você pode passar um objeto genérico IComparer<T> para o construtor da classe SortedDictionary<TKey, TValue> para especificar uma ordem de classificação de um tipo que não implementa um genérico System.IComparable<T>.Há sobrecargas do método estático genérico Array.Sort e o método da instância List<T>.Sort para classificar matrizes e listas usando implementações genéricas IComparer<T>.

As classes genéricas Comparer<T> e EqualityComparer<T> fornecem classes base para implementações das interfaces genéricas IComparer<T> e IEqualityComparer<T>, e também fornecem padrão de comparações de ordenação e de igualdade por meio de suas respectivas propriedades Comparer<T>.Default e EqualityComparer<T>.Default.

Funcionalidade da Coleção

A interface genérica ICollection<T> é a interface básica para os tipos de coleção genérica.Ele fornece funcionalidade básica para adicionando, removendo, copiando e enumerar elementos.ICollection<T> herda de ambos os genérica IEnumerable<T> e não genérico IEnumerable.

A interface genérica IList<T> estende a interface genérica ICollection<T> com métodos para recuperação indexada.

A interface genérica IDictionary<TKey, TValue> estende a interface genérica ICollection<T> com métodos para recuperação por chave.Tipos de dicionário genérico na biblioteca de classe base do .NET Framework também implementan a interface não genérica IDictionary.

A interface genérica IEnumerable<T> fornece uma estrutura de enumerador genérico.A interface genérica IEnumerator<T> implementada pelo enumeradores genéricos herda interface não genérica IEnumerator; os membros MoveNext e Reset, que não dependem de parâmetro do tipo T, aparecem somente na interface não genérica.Isso significa que qualquer consumidor da interface não genérica também pode consumir a interface genérica.

Consulte também

Conceitos

Visão geral das classes genéricas no .NET Framework

Coleções Genéricas na .NET Framework

Representantes Genéricos para Manipulação de Matrizes e Listas

Vantagens e Limitações dos Genéricos

Referência

System.Collections.Generic

System.Collections.ObjectModel

Outros recursos

Classes genéricas no .NET Framework