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

Зависимость от интерфейса в C#

Тип параметра или поля можно указать как интерфейс. Тогда в метод передают любой объект класса, который этот интерфейс реализует.

Класс, который хранит список участников, не привязан к конкретному типу разработчика - ему нужен только контракт программиста. Запишем команду:

interface IProgrammer { void AddLang(string lang); int LangCount(); } class Developer : IProgrammer { private List<string> langs = new List<string>(); public void AddLang(string lang) { langs.Add(lang); } public int LangCount() { return langs.Count; } } class Team { private List<IProgrammer> members = new List<IProgrammer>(); public void Add(IProgrammer member) { members.Add(member); } public int TotalLangs() { int sum = 0; foreach (IProgrammer member in members) { sum += member.LangCount(); } return sum; } }

Создадим команду, добавим разработчика с языком и выведем суммарное число языков:

var team = new Team(); var dev = new Developer(); dev.AddLang("csharp"); team.Add(dev); Console.WriteLine(team.TotalLangs());

Сделайте интерфейс IStorable с методом Save. Сделайте класс Archive с методом Store, принимающим IStorable. Передайте в Store объект вашего класса Article.

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