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 муайян, он ба маҳдудиятҳои муайян ҷавобгост.