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.
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.