Обобщенные классы в C# Киньзибаев Рашид
Обобщение есть параметризированный тип
Общий вид обобщенного класса : class имя _ класса { // … }
Пример : class Gen { Т ob; public Gen(T о ) { ob = о ; } public T GetOb( ) { return ob; }
class TwoGen { //... }
Ограниченные типы - безопасность и надежность
Ограничение на базовый класс ! благодаря этому ограничению устанавливается взаимосвязь между двумя параметрами типа
Пример : class Test where T : А { //... }
Пример : class Test where T : V { //... }
Ограничение на интерфейс where T : имя _ интерфейса ! В этой форме ограничения может быть указан список интерфейсов через запятую.
!!! Если ограничение накладывается одновременно на базовый класс и интерфейс, то первым в списке должен быть указан базовый класс.
Ограничение new () на конструктор Ограничение new () на конструктор позволяет получать экземпляр объекта обобщенного типа.
!!! Оно требует, чтобы аргумент типа предоставил конструктор без параметров.
Ограничения ссылочного типа и типа значения where T : class where T : struct
Ключевое слово default Служит для безошибочного присвоения значения по умолчанию
class Gen where V : T Ограничения для связи параметров
Применение нескольких ограничений class Gen where T : MyClass, IMylnterface, new() { //... !!! Первым должно быть указано ограничение class либо struct, если оно присутствует, или же ограничение на базовый класс, если оно накладывается, далее по списку должно следовать ограничение на интерфейс, а последним по порядку ограничение new ().
Всем спасибо !