Шта је ограничење „где“.
Тхе 'где' ограничење је генеричко ограничење типа у Ц# које омогућава програмерима да наведу параметар типа који генерички тип може да представља. Ограничење је специфицирано помоћу 'где' кључну реч праћену параметром типа и ограничењем, синтаксом за коришћење 'где' ограничење је следеће:
јавна класа Име класе < Т > где је Т : ограничење{
// Имплементација класе
}
Ево 'Назив класе' представља име класе са параметром генеричког типа 'Т' . Тхе 'где' кључна реч специфицира ограничење за параметар типа, а 'ограничење' је тип који параметар типа мора да представља.
Узмимо пример генеричке класе која прихвата параметар типа и враћа минималну вредност из низа вредности. Овде код користи 'где' ограничење да се наведе да параметар типа мора бити нумерички тип:
користећи Систем ;
јавна класа МинВалуе < Т > где је Т : струцт , ИЦомпарабле , ИЦонвертибле
{
публиц Т ГетМинВалуе ( Т [ ] низ )
{
ако ( низ == нула || низ. Дужина == 0 ) {
избаци нови изузетак Аргумент ( 'Низ не може бити нулл или празан' ) ;
}
Т мин = низ [ 0 ] ;
за ( инт и = 1 ; и < низ. Дужина ; и ++ ) {
ако ( низ [ и ] . У поређењу са ( мин ) < 0 ) {
мин = низ [ и ] ;
}
}
повратак мин ;
}
}
Програм јавног часа
{
јавности статична празнина Главни ( )
{
инт [ ] интАрраи = { 1 , 2 , 3 , 4 , 5 } ;
МинВалуе < инт > интМинВалуе = нова МинВалуе < инт > ( ) ;
инт интМин = интМинВалуе. ГетМинВалуе ( интАрраи ) ;
Конзола. ВритеЛине ( „Минимална вредност интАрраи: {0}“ , интМин ) ;
дупло [ ] доублеАрраи = { 1.1 , 2.2 , 3.3 , 4.4 , 5.5 } ;
МинВалуе < дупло > доублеМинВалуе = нова МинВалуе < дупло > ( ) ;
дупло доублеМин = доублеМинВалуе. ГетМинВалуе ( доублеАрраи ) ;
Конзола. ВритеЛине ( „Минимална вредност доублеАрраи: {0}“ , доублеМин ) ;
}
}
Овде смо дефинисали генеричку класу „Минимална вредност“ који прихвата параметар типа 'Т' и враћа минималну вредност из низа вредности. Затим смо користили 'где' ограничење да се наведе да параметар типа мора бити структура, имплементирати интерфејс ИЦомпарабле и имплементирати интерфејс ИЦонвертибле. Ово ограничење осигурава да су само нумерички типови дозвољени као параметри типа.
Закључак
Тхе 'где' ограничење у Ц# је моћна функција која омогућава програмерима да наметну безбедност типова и спрече грешке током рада. Коришћењем овог ограничења можете одредити скуп типова које параметар генеричког типа може да представља. Овај чланак је дао преглед 'где' ограничење у Ц# и демонстрирао како се користи са кодом.