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 տիպը համապատասխանի սահմանված սահմանափակումներին։