Перебор разных классов в одном foreach - C#

Узнай цену своей работы

Формулировка задачи:

Приветствую! Столкнулся с такой проблемой: имеется класс Worker, у него есть три наследника Master, bookkeeper, Manager, а у них, у каждого, есть метод save. Что внутри классов значения не имеет. Задача следующая, перебрать всех трех наследников, находящихся в одном списке (List), через один форыч (foreach). Я попробовал сделать так:
Листинг программы
  1. List<Worker> Workers = new List<Worker>();
  2. foreach (Worker Item in Workers)
  3. {
  4. if (Item is Master)
  5. {
  6. Item.save();
  7. }
  8. if (Item is bookkeeper)
  9. {
  10. Item.save();
  11. }
  12. if (Item is Manager)
  13. {
  14. Item.save();
  15. }
  16. }
Но метод цеплять не хочет, хотя он публичный. Помогите пожалуйста нубу)

Решение задачи: «Перебор разных классов в одном foreach»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. class Program
  4. {
  5.     static void Main(string[] args)
  6.     {
  7.         List<Base> list = new List<Base>();
  8.         list.Add(new A());
  9.         list.Add(new Base());
  10.         list.Add(new B());
  11.         list.Add(new Base());
  12.         list.Add(new B());
  13.         list.Add(new A());
  14.         foreach (Base item in list)
  15.             Console.WriteLine(item.Print());
  16.     }
  17.  
  18. }
  19.  
  20. class Base
  21. {
  22.     public virtual string Print()
  23.     {
  24.         return "It's Base";
  25.     }
  26. }
  27.  
  28. class A : Base
  29. {
  30.     public override string Print()
  31.     {
  32.         return "It's A";
  33.     }
  34. }
  35.  
  36. class B : Base
  37. {
  38.     public override string Print()
  39.     {
  40.         return "It's B";
  41.     }
  42. }

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


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

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

5   голосов , оценка 4.2 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы