Come utilizzare where (vincolo di tipo generico)

Come Utilizzare Where Vincolo Di Tipo Generico



I vincoli di tipo generico in C# consentono agli sviluppatori di definire il set di tipi che un parametro di tipo generico può rappresentare. Questa funzionalità consente al compilatore di applicare l'indipendenza dai tipi e impedisce gli errori che potrebbero verificarsi durante il runtime. Uno dei vincoli più utilizzati è il 'Dove' vincolo, questo articolo spiegherà cos'è il 'Dove' vincolo è in C# e come usarlo nel tuo codice.

Qual è il vincolo 'dove'.

IL 'Dove' constraint è un vincolo di tipo generico in C# che consente agli sviluppatori di specificare il parametro di tipo che un tipo generico può rappresentare. Il vincolo viene specificato utilizzando il 'Dove' parola chiave seguita dal parametro type e dal vincolo, la sintassi per l'utilizzo di 'Dove' vincolo è il seguente:

classe pubblica NomeClasse < T > dove : vincolo

{

// Implementazione della classe

}

Qui il 'Nome della classe' rappresenta il nome della classe con un parametro di tipo generico 'T' . IL 'Dove' parola chiave specifica il vincolo per il parametro di tipo e il 'vincolo' è il tipo che il parametro di tipo deve rappresentare.







Prendiamo un esempio di una classe generica che accetta un parametro di tipo e restituisce il valore minimo da un array di valori. Qui il codice utilizza il 'Dove' vincolo per specificare che il parametro di tipo deve essere di tipo numerico:



usando Sistema ;

classe pubblica MinValue < T > dove : struct , Comparabile , Convertibile

{

public T GetMinValue ( T [ ] vettore )

{

Se ( vettore == nullo || vettore. Lunghezza == 0 ) {

lancia una nuova ArgumentException ( 'L'array non può essere nullo o vuoto' ) ;

}

T min = vettore [ 0 ] ;

per ( int io = 1 ; io < vettore. Lunghezza ; io ++ ) {

Se ( vettore [ io ] . Confrontare con ( min ) < 0 ) {

min = vettore [ io ] ;

}

}

ritorno min ;

}

}

Programma di classe pubblica

{

pubblico statico vuoto Principale ( )

{

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

MinValue < int > intMinValue = nuovo valore minimo < int > ( ) ;

int intMin = intMinValue. OttieniValoreMin ( intArray ) ;

Consolle. Linea di scrittura ( 'Valore minimo di intArray: {0}' , intMin ) ;

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

MinValue < Doppio > doubleMinValue = nuovo valore minimo < Doppio > ( ) ;

Doppio doppioMin = doubleMinValue. OttieniValoreMin ( doubleArray ) ;

Consolle. Linea di scrittura ( 'Valore minimo di doubleArray: {0}' , doppioMin ) ;

}

}

Qui, abbiamo definito una classe generica 'Valore minimo' che accetta un parametro di tipo 'T' e restituisce il valore minimo da un array di valori. Successivamente, abbiamo utilizzato il 'Dove' per specificare che il parametro type deve essere uno struct, implementare l'interfaccia IComparable e implementare l'interfaccia IConvertible. Questo vincolo garantisce che solo i tipi numerici siano consentiti come parametri di tipo.



  Forma, rettangolo Descrizione generata automaticamente





Conclusione

IL 'Dove' il vincolo in C# è una potente funzionalità che consente agli sviluppatori di applicare l'indipendenza dai tipi e prevenire errori durante il runtime. Usando questo vincolo, è possibile specificare il set di tipi che un parametro di tipo generico può rappresentare. Questo articolo ha fornito una panoramica del 'Dove' vincolo in C# e dimostrato come usarlo con un codice.