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