Перебор разных классов в одном foreach - C#
Формулировка задачи:
Приветствую! Столкнулся с такой проблемой: имеется класс Worker, у него есть три наследника Master, bookkeeper, Manager, а у них, у каждого, есть метод save. Что внутри классов значения не имеет. Задача следующая, перебрать всех трех наследников, находящихся в одном списке (List), через один форыч (foreach).
Я попробовал сделать так:
Но метод цеплять не хочет, хотя он публичный. Помогите пожалуйста нубу)
List<Worker> Workers = new List<Worker>(); foreach (Worker Item in Workers) { if (Item is Master) { Item.save(); } if (Item is bookkeeper) { Item.save(); } if (Item is Manager) { Item.save(); } }
Решение задачи: «Перебор разных классов в одном foreach»
textual
Листинг программы
using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<Base> list = new List<Base>(); list.Add(new A()); list.Add(new Base()); list.Add(new B()); list.Add(new Base()); list.Add(new B()); list.Add(new A()); foreach (Base item in list) Console.WriteLine(item.Print()); } } class Base { public virtual string Print() { return "It's Base"; } } class A : Base { public override string Print() { return "It's A"; } } class B : Base { public override string Print() { return "It's B"; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д