Перебор разных классов в одном 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";
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д