Sobes.tech
Junior — Middle
84

Бағдарламалау тілінде Генериктерді қолданғанда қабылданатын мәндерге шектеу қоюға бола ма?

Сұралған компаниялар
Элисофт

AI-дан жауап

sobes.tech AI

C# тілінде жалпы (Generics) қолданылатын типтерді шектеу арқылы шектеулер (constraints) қоюға болады. Бұл параметр типіне талаптар қоюға мүмкіндік береді, мысалы, ол класс болуы, белгілі бір интерфейсті жүзеге асыруы, параметрсіз конструкторға ие болуы және т.б.

Шектеулердің мысалдары:

  • where T : class — тип сілтемелі болуы керек.
  • where T : struct — тип мәндік (value type) болуы керек.
  • where T : new() — типте ашық параметрсіз конструктор болуы керек.
  • where T : SomeBaseClass — тип көрсетілген класс мұрагерлік етуі керек.
  • where T : ISomeInterface — тип интерфейсті жүзеге асыруы керек.

Мысал:

public class Repository<T> where T : IEntity, new()
{
    public T CreateNew()
    {
        return new T(); // Параметрсіз конструкторды шақыруға болады
    }
}

Осылайша, шектеу қандай типтерді жалпыға қолдануға болатынын бақылауға мүмкіндік береді, бұл қауіпсіздік пен кодтың болжамдылығын қамтамасыз етеді.