C# genéricos

0 Comments

genérico significa a forma geral, não específica. Em C#, genérico significa não específico para um determinado tipo de dados.

C# permite-lhe definir classes genéricas, interfaces, classes abstractas, campos,métodos, métodos estáticos, propriedades, eventos, delegados e operadores que utilizem o parâmetro tipo e sem o tipo específico de dados. Um parâmetro de tipo é uma substituição para um determinado tipo especificado ao criar uma instância do tipo genérico.

um tipo genérico é declarado especificando um parâmetro de tipo em um parêntesis angular após um nome de tipo, e.g., em que T é um parâmetro de tipo.

classe genérica

As classes genéricas são definidas usando um parâmetro de tipo entre parêntesis de ângulo após o nome da classe. O seguinte define uma classe genérica.

Exemplo: Definir Classe Genérica

Acima DataStore é uma classe genérica., T é chamado de parâmetro de tipo, que pode ser usado como um tipo de campos, propriedades, parâmetros de método, tipos de retorno, e os delegados DataStore classe. Por exemplo, Data é propriedade genérica porque temos usado um parâmetro de tipo T como seu tipo em vez do tipo de dados específico.

Nota
não é necessário utilizar T como parâmetro de tipo. Você pode dar qualquer nome a um parâmetro do tipo., Geralmente, T é usado quando existe apenas um parâmetro tipo. Recomenda-se a utilização de um nome do parâmetro do tipo mais legível de acordo com o requisito: TSession, TKey, TValue etc. Saiba mais sobre as Diretrizes de nomenclatura de Parâmetros de tipo

Você também pode definir vários tipos de parâmetros separados por uma vírgula.

instanciando a classe genérica

pode criar uma instância de classes genéricas, especificando um tipo real entre parêntesis de ângulo., O seguinte cria uma instância da classe genérica DataStore.

acima, especificámos o string tipo nos parêntesis angulares ao criar uma instância. Assim, T será substituído com um string escrever onde T é usado em toda a classe em tempo de compilação. Portanto, o tipo de Data property would be a string.

a figura seguinte ilustra como os genéricos funcionam.,

pode atribuir um valor de texto à Data propriedade. Tentar atribuir outros valores que não string resultará em um erro de tempo de compilação.

pode especificar os diferentes tipos de dados para diferentes objectos, como mostrado abaixo.

ublicidade

características genéricas da classe

  • Uma classe genérica aumenta a reutilização. Quanto mais parâmetros de tipo significam mais reutilizável ele se torna., No entanto, demasiada generalização torna o código difícil de entender e manter.
  • Uma classe genérica pode ser uma classe base para outras classes genéricas ou não genéricas ou classes abstratas.
  • Uma classe genérica pode ser derivada de outras interfaces genéricas ou não genéricas, classes ou classes abstratas.

campos genéricos

uma classe genérica pode incluir campos genéricos. No entanto, não pode ser iniciado.

Exemplo: Campo Genérico

A seguir declara uma matriz genéricos.,

Exemplo: Matriz Genéricos

Métodos Genéricos

Um método declarado com o tipo de parâmetros para o seu tipo de retorno ou parâmetros é chamado um método genérico.

acima, os métodos

e o GetData() são métodos genéricos. O tipo de dados Real do parâmetro item será especificado no momento da instanciação do id

classe, como mostrado abaixo.,

o tipo de parâmetro genérico pode ser usado com múltiplos parâmetros com ou sem parâmetros não genéricos e tipo de retorno. As seguintes informações são um método genérico de sobrecarga válido.

uma classe não-genérica pode incluir métodos genéricos, especificando um parâmetro de tipo entre parêntesis de ângulo com o nome do método, como mostrado abaixo.as vantagens dos genéricos

  1. Os genéricos aumentam a reutilização do Código. Você não precisa escrever código para lidar com diferentes tipos de dados. os genéricos são seguros para o tipo., Você obtém erros de tempo de compilação se você tentar usar um tipo de dados diferente do especificado na definição.
  2. Genérico tem uma vantagem de desempenho porque remove as possibilidades de boxe e descompressão.


Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *