Вызов одинакового метода для разных объектов из массива - 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();
}
}
}