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 ტიპი შეესაბამება განსაზღვრულ შეზღუდვებს.