Paano Gamitin kung saan (Generic Type Constraint)

Paano Gamitin Kung Saan Generic Type Constraint



Ang mga limitasyon ng generic na uri sa C# ay nagbibigay-daan sa mga developer na tukuyin ang hanay ng mga uri na maaaring katawanin ng isang generic na uri ng parameter. Ang tampok na ito ay nagbibigay-daan sa compiler na ipatupad ang kaligtasan ng uri at maiwasan ang mga error na maaaring mangyari sa panahon ng runtime. Isa sa mga pinaka ginagamit na hadlang ay ang 'saan' pagpilit, ipapaliwanag ng artikulong ito kung ano ang 'saan' Ang pagpilit ay nasa C# at kung paano ito gamitin sa iyong code.

Ano ang 'kung saan' Constraint

Ang 'saan' Ang pagpilit ay isang generic na uri ng pagpilit sa C# na nagpapahintulot sa mga developer na tukuyin ang uri ng parameter na maaaring katawanin ng isang generic na uri. Ang pagpilit ay tinukoy gamit ang 'saan' keyword na sinusundan ng uri ng parameter at ang hadlang, ang syntax para sa paggamit ng 'saan' ang paghihigpit ay ang mga sumusunod:

pampublikong klase ClassName < T > kung saan si T : paghihigpit

{

// Pagpapatupad ng klase

}

Dito ang 'Pangalan ng klase' kumakatawan sa pangalan ng klase na may generic na uri ng parameter 'T' . Ang 'saan' Tinutukoy ng keyword ang hadlang para sa uri ng parameter, at ang 'pagpigil' ay ang uri na dapat katawanin ng uri ng parameter.







Kumuha tayo ng isang halimbawa ng isang generic na klase na tumatanggap ng isang uri ng parameter at nagbabalik ng pinakamababang halaga mula sa isang hanay ng mga halaga. Dito ginagamit ng code ang 'saan' pagpilit upang tukuyin na ang uri ng parameter ay dapat na isang numerong uri:



gamit ang System ;

pampublikong klase MinValue < T > kung saan si T : struct , IComparable , IConvertible

{

pampublikong T GetMinValue ( T [ ] array )

{

kung ( array == wala || array. Ang haba == 0 ) {

magtapon ng bagong ArgumentException ( 'Hindi maaaring null o walang laman ang array' ) ;

}

T min = array [ 0 ] ;

para sa ( int i = 1 ; i < array. Ang haba ; i ++ ) {

kung ( array [ i ] . Ikumpara Kay ( min ) < 0 ) {

min = array [ i ] ;

}

}

bumalik min ;

}

}

programa sa pampublikong klase

{

pampubliko static walang bisa Pangunahing ( )

{

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

MinValue < int > intMinValue = bagong MinValue < int > ( ) ;

int intMin = intMinValue. GetMinValue ( intArray ) ;

Console. WriteLine ( 'Minimum na halaga ng intArray: {0}' , intMin ) ;

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

MinValue < doble > doubleMinValue = bagong MinValue < doble > ( ) ;

doble doubleMin = doubleMinValue. GetMinValue ( doubleArray ) ;

Console. WriteLine ( 'Minimum na halaga ng doubleArray: {0}' , doubleMin ) ;

}

}

Dito, tinukoy namin ang isang generic na klase “MinValue” na tumatanggap ng isang uri ng parameter 'T' at ibinabalik ang pinakamababang halaga mula sa isang hanay ng mga halaga. Susunod, ginamit namin ang 'saan' pagpilit upang tukuyin na ang uri ng parameter ay dapat na isang struct, ipatupad ang IComparable interface, at ipatupad ang IConvertible interface. Tinitiyak ng paghihigpit na ito na ang mga numerong uri lamang ang pinapayagan bilang mga parameter ng uri.



  Hugis, parihaba Paglalarawan ay awtomatikong nabuo





Konklusyon

Ang 'saan' Ang pagpilit sa C# ay isang malakas na tampok na nagbibigay-daan sa mga developer na ipatupad ang kaligtasan ng uri at maiwasan ang mga error sa panahon ng runtime. Sa pamamagitan ng paggamit ng hadlang na ito, maaari mong tukuyin ang hanay ng mga uri na maaaring katawanin ng isang generic na uri ng parameter. Ang artikulong ito ay nagbigay ng pangkalahatang-ideya ng 'saan' pagpilit sa C# at ipinakita kung paano ito gamitin gamit ang isang code.