Cum se utilizează unde (Constrângere de tip generic)

Cum Se Utilizeaza Unde Constrangere De Tip Generic



Constrângerile de tip generic în C# permit dezvoltatorilor să definească setul de tipuri pe care le poate reprezenta un parametru de tip generic. Această caracteristică permite compilatorului să impună siguranța tipului și previne erorile care ar putea apărea în timpul rulării. Una dintre cele mai utilizate constrângeri este 'Unde' constrângere, acest articol va explica ce 'Unde' constrângerea este în C# și cum să o utilizați în codul dvs.

Care este constrângerea „unde”.

The 'Unde' constrângerea este o constrângere de tip generic în C# care permite dezvoltatorilor să specifice parametrul de tip pe care un tip generic îl poate reprezenta. Constrângerea este specificată folosind 'Unde' cuvânt cheie urmat de parametrul tip și constrângerea, sintaxa pentru utilizarea 'Unde' constrângerea este după cum urmează:

clasă publică ClassName < T > unde T : constrângere

{

// Implementarea clasei

}

Aici 'Numele clasei' reprezintă numele clasei cu un parametru de tip generic „T” . The 'Unde' cuvântul cheie specifică constrângerea pentru parametrul tip și 'constrângere' este tipul pe care trebuie să-l reprezinte parametrul tip.







Să luăm un exemplu de clasă generică care acceptă un parametru de tip și returnează valoarea minimă dintr-o matrice de valori. Aici codul folosește 'Unde' constrângere pentru a specifica faptul că parametrul tip trebuie să fie de tip numeric:



folosind System ;

Clasa publică MinValue < T > unde T : struct , Comparabil , IConvertibil

{

public T GetMinValue ( T [ ] matrice )

{

dacă ( matrice == nul || matrice. Lungime == 0 ) {

aruncați o nouă excepție ArgumentException ( „Matricea nu poate fi nulă sau goală” ) ;

}

T min = matrice [ 0 ] ;

pentru ( int i = 1 ; i < matrice. Lungime ; i ++ ) {

dacă ( matrice [ i ] . Compara cu ( min ) < 0 ) {

min = matrice [ i ] ;

}

}

întoarcere min ;

}

}

Programul de clasă publică

{

public static gol Principal ( )

{

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

MinValue < int > intMinValue = noua Valoare Min < int > ( ) ;

int intMin = intMinValue. GetMinValue ( intArray ) ;

Consolă. WriteLine ( „Valoarea minimă a intArray: {0}” , intMin ) ;

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

MinValue < dubla > doubleMinValue = noua Valoare Min < dubla > ( ) ;

dubla dubluMin = doubleMinValue. GetMinValue ( doubleArray ) ;

Consolă. WriteLine ( „Valoarea minimă a doubleArray: {0}” , dubluMin ) ;

}

}

Aici, am definit o clasă generică „Valoare minimă” care acceptă un parametru de tip „T” și returnează valoarea minimă dintr-o matrice de valori. În continuare, am folosit 'Unde' constrângere pentru a specifica faptul că parametrul de tip trebuie să fie o structură, să implementeze interfața IComparable și să implementeze interfața IConvertible. Această constrângere asigură că numai tipurile numerice sunt permise ca parametri de tip.



  Formă, dreptunghi Descriere generată automat





Concluzie

The 'Unde' constrângerea în C# este o caracteristică puternică care permite dezvoltatorilor să impună siguranța tipului și să prevină erorile în timpul rulării. Folosind această constrângere, puteți specifica setul de tipuri pe care le poate reprezenta un parametru de tip generic. Acest articol a oferit o prezentare generală a 'Unde' constrângere în C# și a demonstrat cum să o folosești cu un cod.