Вызов одинакового метода для разных объектов из массива - C#

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

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

Напишите три класса: Secretary, Director и Programmer. Каждый из них должен содержать метод CalculateSalary. Для простоты пусть каждый из них выводит строку "Теперь расчет жалованья для..." и имя класса. Предположим, что в вашей программе много объектов этих трех типов и их необходимо хранить в массиве. Как хранить их в одном массиве и вызывать CalculateSalary для каждого объекта при прохождении по массиву вызовом одного и того же метода для всех объектов? В чем ошибка меняю Main на CalculateSalary и выпадает ошибка
using System; 

namespace расчетЖалования
{
    class Secretary
    {
        public static void Main(string[] args)
        {
            Console.Write("Теперь расчет жалованья для...");
            Console.ReadKey(true);
        }
    }

    class Director
    {
        public static void Main2(string[] args)
        {
            Console.Write("Теперь расчет жалованья для...");
            Console.ReadKey(true);
        }
    }
    
class Programmer
    {
        public static void Main3(string[] args)
        {
            Console.Write("Теперь расчет жалованья для...");
            Console.ReadKey(true);
        }
    }
}

Решение задачи: «Вызов одинакового метода для разных объектов из массива»

textual
Листинг программы
using System;
 
namespace SalaryCalculator
{
    interface ICalculatable
    {
        void CalculateSalary();
    }
 
    class Secretary : ICalculatable
    {
        public void CalculateSalary()
        {
            Console.WriteLine("Теперь расчет жалованья для Secretary");
        }
    }
 
 
    class Director : ICalculatable
    {
        public void CalculateSalary()
        {
            Console.WriteLine("Теперь расчет жалованья для Director");
        }
    }
 
    class Programmer : ICalculatable
    {
        public void CalculateSalary()
        {
            Console.WriteLine("Теперь расчет жалованья для Programmer");
        }
    }
 
    class Starter
    {
        public static void Main(string[] args)
        {
            ICalculatable[] staff = new ICalculatable[6];
            staff[0] = new Programmer();
            staff[1] = new Secretary();
            staff[2] = new Director();
            staff[3] = new Secretary();
            staff[4] = new Director();
            staff[5] = new Programmer();
            foreach (ICalculatable employee in staff)
            {
                employee.CalculateSalary();
            }
            Console.ReadKey();
        }
    }
}

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


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

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

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