Jak používat kde (Obecné omezení typu)

Jak Pouzivat Kde Obecne Omezeni Typu



Omezení obecného typu v C# umožňují vývojářům definovat sadu typů, které může reprezentovat parametr obecného typu. Tato funkce umožňuje kompilátoru vynutit bezpečnost typu a zabraňuje chybám, které by mohly nastat během běhu. Jedním z nejpoužívanějších omezení je 'kde' omezení, tento článek vysvětlí, co 'kde' omezení je v C# a jak jej použít ve vašem kódu.

Co je omezení „kde“.

The 'kde' constraint je omezení obecného typu v C#, které umožňuje vývojářům zadat parametr typu, který může obecný typ reprezentovat. Omezení je specifikováno pomocí 'kde' klíčové slovo následované parametrem type a omezením, syntaxí pro použití 'kde' omezení je následující:

veřejná třída Název_třídy < T > kde T : omezení

{

// Implementace třídy

}

Zde je 'Jméno třídy' představuje název třídy s parametrem generického typu 'T' . The 'kde' klíčové slovo určuje omezení pro parametr type a 'omezení' je typ, který musí reprezentovat parametr type.







Vezměme si příklad generické třídy, která přijímá parametr typu a vrací minimální hodnotu z pole hodnot. Zde kód používá 'kde' omezení k určení, že parametr type musí být číselný typ:



pomocí System ;

veřejná třída MinValue < T > kde T : strukturovat , IPorovnatelné , Ikonvertibilní

{

veřejné T GetMinValue ( T [ ] pole )

{

-li ( pole == nula || pole. Délka == 0 ) {

hodit novou ArgumentException ( 'Pole nemůže být null nebo prázdné' ) ;

}

T min = pole [ 0 ] ;

pro ( int i = 1 ; i < pole. Délka ; i ++ ) {

-li ( pole [ i ] . Porovnat s ( min ) < 0 ) {

min = pole [ i ] ;

}

}

vrátit se min ;

}

}

Program veřejné třídy

{

veřejnost statický prázdnota Hlavní ( )

{

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

MinValue < int > intMinValue = nová MinValue < int > ( ) ;

int intMin = intMinValue. GetMinValue ( intArray ) ;

Řídicí panel. WriteLine ( 'Minimální hodnota intArray: {0}' , intMin ) ;

dvojnásobek [ ] doubleArray = { 1.1 , 2.2 , 3.3 , 4.4 , 5.5 } ;

MinValue < dvojnásobek > doubleMinValue = nová MinValue < dvojnásobek > ( ) ;

dvojnásobek doubleMin = doubleMinValue. GetMinValue ( doubleArray ) ;

Řídicí panel. WriteLine ( 'Minimální hodnota doubleArray: {0}' , doubleMin ) ;

}

}

Zde jsme definovali generickou třídu 'MinValue' který přijímá parametr typu 'T' a vrátí minimální hodnotu z pole hodnot. Dále jsme použili 'kde' omezení určit, že parametr type musí být struktura, implementovat rozhraní IComparable a implementovat rozhraní IConvertible. Toto omezení zajišťuje, že jako parametry typu jsou povoleny pouze číselné typy.



  Tvar, obdélník Popis automaticky vygenerován





Závěr

The 'kde' omezení v C# je výkonná funkce, která umožňuje vývojářům vynutit bezpečnost typu a zabránit chybám během běhu. Pomocí tohoto omezení můžete určit sadu typů, které může reprezentovat obecný parametr typu. Tento článek poskytl přehled o 'kde' omezení v C# a ukázal, jak jej používat s kódem.