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