Sobes.tech
Junior — Middle

Ինչպե՞ս կարելի է սահմանափակում սահմանել պարամետրի տիպի վրա գեներիկում։

sobes.tech AI

Պատասխան AI-ից

C# լեզվում, գեներիկների պարամետրի տիպի սահմանափակումը սահմանվում է where բանալի բառով: Դա թույլ է տալիս նշել, որ պարամետրի տիպը պետք է ժառանգի որոշակի դասից, իրականացնել ինտերֆեյս, լինել հղումային կամ արժեքային տիպ, ունենալ առանց պարամետրերի կոնստրուկտոր և այլն:

Օրինակ՝

// Սահմանափակում՝ T պետք է լինի դաս, որը իրականացնում է IDisposable և ունի առանց պարամետրերի կոնստրուկտոր
public class MyClass<T> where T : class, IDisposable, new()
{
    public T CreateInstance()
    {
        return new T();
    }
}

Այսպիսով, կոմպիլյատորը ապահովում է, որ MyClass- ը օգտագործելիս կոնկրետ T տիպը համապատասխանի սահմանված սահմանափակումներին։