Kaip naudoti kur (bendras tipo apribojimas)

Kaip Naudoti Kur Bendras Tipo Apribojimas



Bendrojo tipo apribojimai C# leidžia kūrėjams apibrėžti tipų rinkinį, kurį gali atstovauti bendrasis tipo parametras. Ši funkcija leidžia kompiliatoriui užtikrinti tipo saugumą ir užkirsti kelią klaidoms, kurios gali atsirasti vykdymo metu. Vienas iš dažniausiai naudojamų apribojimų yra 'kur' apribojimą, šiame straipsnyje bus paaiškinta, kas 'kur' apribojimas yra C# ir kaip jį naudoti savo kode.

Kas yra „kur“ apribojimas

The 'kur' apribojimas yra bendro tipo apribojimas C#, leidžiantis kūrėjams nurodyti tipo parametrą, kurį gali atstovauti bendrasis tipas. Apribojimas nurodomas naudojant 'kur' raktinis žodis, po kurio nurodomas tipo parametras ir apribojimas, naudojimo sintaksė 'kur' apribojimas yra toks:

viešoji klasė ClassName < T > kur T : apribojimas

{

// Klasės įgyvendinimas

}

Čia „Klasės pavadinimas“ reiškia klasės pavadinimą su bendru tipo parametru 'T' . The 'kur' raktinis žodis nurodo tipo parametro apribojimą ir 'apribojimas' yra tipas, kurį turi atstovauti tipo parametras.







Paimkime bendrosios klasės, kuri priima tipo parametrą ir grąžina mažiausią reikšmę iš reikšmių masyvo, pavyzdį. Čia kodas naudoja 'kur' apribojimas, nurodantis, kad tipo parametras turi būti skaitinio tipo:



naudojant Sistemą ;

viešoji klasė MinValue < T > kur T : struktūra , Palyginti , IKabrioletas

{

viešas T GetMinValue ( T [ ] masyvas )

{

jeigu ( masyvas == nulinis || masyvas. Ilgis == 0 ) {

mesti naują ArgumentException ( 'Masyvas negali būti nulinis arba tuščias' ) ;

}

T min = masyvas [ 0 ] ;

dėl ( tarpt i = 1 ; i < masyvas. Ilgis ; i ++ ) {

jeigu ( masyvas [ i ] . Palyginti su ( min ) < 0 ) {

min = masyvas [ i ] ;

}

}

grąžinti min ;

}

}

viešosios klasės programa

{

viešas statinis tuštuma Pagrindinis ( )

{

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

MinValue < tarpt > intMinValue = nauja MinValue < tarpt > ( ) ;

tarpt intMin = intMinValue. GetMinValue ( intArray ) ;

Konsolė. WriteLine ( 'Mažiausia intArray reikšmė: {0}' , intMin ) ;

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

MinValue < dvigubai > doubleMinValue = nauja MinValue < dvigubai > ( ) ;

dvigubai doubleMin = doubleMinValue. GetMinValue ( doubleArray ) ;

Konsolė. WriteLine ( 'Mažiausia doubleArray reikšmė: {0}' , doubleMin ) ;

}

}

Čia mes apibrėžėme bendrąją klasę „Minvertė“ kuri priima tipo parametrą 'T' ir grąžina mažiausią reikšmę iš reikšmių masyvo. Toliau mes panaudojome 'kur' apribojimas, nurodantis, kad tipo parametras turi būti struktūra, įdiegti sąsają IComparable ir sąsają IConvertible. Šis apribojimas užtikrina, kad kaip tipo parametrai būtų leidžiami tik skaitiniai tipai.



  Forma, stačiakampis Aprašymas generuojamas automatiškai





Išvada

The 'kur' C# apribojimas yra galinga funkcija, leidžianti kūrėjams užtikrinti tipo saugumą ir užkirsti kelią klaidoms vykdymo metu. Naudodami šį apribojimą galite nurodyti tipų rinkinį, kurį gali atstovauti bendrasis tipo parametras. Šiame straipsnyje pateikta apžvalga 'kur' apribojimą C# ir parodė, kaip jį naudoti su kodu.