Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗csSpGcSvC 60 of 509 menu
◀ ▶

Несколько ограничений в C#

У одного T бывает несколько ограничений, их пишут через запятую. Тип должен выполнить все сразу. Порядок фиксирован: сначала один базовый класс, затем интерфейсы, в конце - new().

Метод создаёт счётчик, записывает в него 3 и тут же сбрасывает. Создание даёт ограничение new(), поле N - базовый класс, сброс - интерфейс:

static int Cleared<T>() where T : Counter, IReset, new() { T item = new T(); item.N = 3; item.Reset(); return item.N; } Console.WriteLine(Cleared<Counter>()); interface IReset { void Reset(); } class Counter : IReset { public int N; public void Reset() => N = 0; }

Опишите интерфейс с методом закрытия и класс Gate с логическим полем Open, который его реализует. Напишите метод с тремя ограничениями сразу: базовый класс, этот интерфейс и конструктор без параметров. Создайте Gate, запишите в Open значение true, закройте его и выведите Open.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить