Middle
C#-də şablon vasitəsilə istifadəçinin ötürəcəyi növləri məhdudlaşdırmaq mümkündürmü?
sobes.tech Süni İntellekt
AI-dan cavab
Bəli, ümumi tiplər üçün məhdudiyyətlər (generic constraints) istifadə etməklə.
public class MyGenericClass<T> where T : IMyInterface // T, IMyInterface-yi həyata keçirməlidir
{
// ...
}
public class AnotherGenericClass<T> where T : class // T, istinad növü olmalıdır
{
// ...
}
public class YetAnotherGenericClass<T> where T : struct // T, dəyər növü olmalıdır
{
// ...
}
public class CombinedConstraints<T> where T : MyBaseClass, new(), IDisposable // Birgə məhdudiyyətlər
{
// ...
}
Məhdudiyyət növləri:
where T : struct: Növ, dəyər növü olmalıdır (null ola bilməz).where T : class: Növ, istinad növü olmalıdır.where T : new(): Növ, ictimai parametresiz qurucuya malik olmalıdır. Bu məhdudiyyət,structvəclassilə eyni zamanda istifadə edilə bilməz.where T : BaseClass: Növ,BaseClass-dən irs almalıdır və yaBaseClassolmalıdır.where T : IInterface: Növ,IInterfaceinterfeysini həyata keçirməlidir.where T : U: Növ,Uolmalı və ya ondan irs almalıdır, buradaUbaşqa bir tip parametridir.
Bir neçə məhdudiyyəti vergül ilə ayırmaqla birləşdirmək mümkündür. Əsas sinf və ya interfeys üçün məhdudiyyətlər əvvəlcə göstərilməlidir.