Como usar where (restrição de tipo genérico)

Como Usar Where Restricao De Tipo Generico



As restrições de tipo genérico em C# permitem que os desenvolvedores definam o conjunto de tipos que um parâmetro de tipo genérico pode representar. Esse recurso permite que o compilador imponha segurança de tipo e evite erros que possam ocorrer durante o tempo de execução. Uma das restrições mais utilizadas é a 'onde' restrição, este artigo explicará o que 'onde' A restrição está em C# e como usá-la em seu código.

O que é a restrição “onde”

O 'onde' constraint é uma restrição de tipo genérico em C# que permite aos desenvolvedores especificar o parâmetro de tipo que um tipo genérico pode representar. A restrição é especificada usando o 'onde' palavra-chave seguida pelo parâmetro de tipo e a restrição, a sintaxe para usar o 'onde' restrição é a seguinte:

classe pública ClassName < T > onde T : limitação

{

// Implementação da classe

}

Aqui o 'Nome da classe' representa o nome da classe com um parâmetro de tipo genérico “T” . O 'onde' palavra-chave especifica a restrição para o parâmetro de tipo e o 'limitação' é o tipo que o parâmetro de tipo deve representar.







Vamos dar um exemplo de uma classe genérica que aceita um parâmetro de tipo e retorna o valor mínimo de uma matriz de valores. Aqui o código usa o 'onde' restrição para especificar que o parâmetro de tipo deve ser um tipo numérico:



usando o sistema ;

classe pública MinValue < T > onde T : estrutura , IComparável , IConversível

{

public T GetMinValue ( T [ ] variedade )

{

se ( variedade == nulo || variedade. Comprimento == 0 ) {

lançar novo ArgumentException ( 'A matriz não pode ser nula ou vazia' ) ;

}

Tmin = variedade [ 0 ] ;

para ( int eu = 1 ; eu < variedade. Comprimento ; eu ++ ) {

se ( variedade [ eu ] . CompareTo ( min ) < 0 ) {

min = variedade [ eu ] ;

}

}

retornar min ;

}

}

Programa de classe pública

{

público estático vazio Principal ( )

{

int [ ] intArray = { 1 , 2 , 3 , 4 , 5 } ;

MinValue < int > intMinValue = novo MinValue < int > ( ) ;

int intMin = intMinValue. GetMinValue ( intArray ) ;

Console. WriteLine ( 'Valor mínimo de intArray: {0}' , intMin ) ;

dobro [ ] doubleArray = { 1.1 , 2.2 , 3.3 , 4.4 , 5.5 } ;

MinValue < dobro > doubleMinValue = novo MinValue < dobro > ( ) ;

dobro doubleMin = doubleMinValue. GetMinValue ( doubleArray ) ;

Console. WriteLine ( 'Valor mínimo de doubleArray: {0}' , doubleMin ) ;

}

}

Aqui, definimos uma classe genérica “Valor Mín” que aceita um parâmetro de tipo “T” e retorna o valor mínimo de uma matriz de valores. A seguir, utilizamos o 'onde' restrição para especificar que o parâmetro de tipo deve ser uma estrutura, implemente a interface IComparable e implemente a interface IConvertible. Essa restrição garante que apenas tipos numéricos sejam permitidos como parâmetros de tipo.



  Forma, retângulo Descrição gerada automaticamente





Conclusão

O 'onde' A restrição em C# é um recurso poderoso que permite aos desenvolvedores reforçar a segurança de tipo e evitar erros durante o tempo de execução. Ao usar essa restrição, você pode especificar o conjunto de tipos que um parâmetro de tipo genérico pode representar. Este artigo forneceu uma visão geral do 'onde' restrição em C# e demonstrou como usá-la com um código.