Перебор разных классов в одном 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";
}
}