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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5
Похожие ответы