Нужно ли использовать интерфейс IEnumerable? - C#
Формулировка задачи:
Здравствуйте!
Подскажите пожалуйста , необходимо ли в строке 85 указать , что предком класса class Stado является интерфейс IEnumerable ?
P.S. Программа дает одинаковый результат , что с указанием этого , что без указания .
class Stado //: IEnumerable
using System;
using System.Collections;
namespace ConsoleApplication1
{
class Monster
{
string name;
public int health, ammo;
public Monster()
{
this.health = 100;
this.ammo = 100;
}
public Monster(string name) : this()
{
this.name = name;
}
public int Health
{
get
{
return health;
}
set
{
if (value > 0) health = value;
else health = 0;
}
}
public int Ammo
{
get
{
return ammo;
}
set
{
if (value > 0) ammo = value;
else ammo = 0;
}
}
public string Name
{
get
{
return name;
}
}
virtual public void Passport()
{
Console.WriteLine("Monster {0} \t\t health = {1} ammo = {2} ",
name, health, ammo);
}
}
class Daemon : Monster
{
int brain;
public Daemon()
{
brain = 1;
}
public Daemon(string name, int brain) : base(name)
{
this.brain = brain;
}
override public void Passport()
{
Console.WriteLine("Daemon {0} \t\t health = {1} ammo = {2} brain = {3} ",
Name, Health, Ammo, brain);
}
}
class Stado //: IEnumerable
{
private Monster[] mas;
private int n;
public Stado()
{
mas = new Monster[10];
n = 0;
}
public IEnumerator GetEnumerator()
{
for (int i = 0; i < n; ++i) yield return mas[i];
}
public void Add(Monster m)
{
if (n >= 10) return;
mas[n] = m;
++n;
}
}
class Class1
{
static void Main()
{
Stado s = new Stado();
s.Add(new Monster());
s.Add(new Monster("Вася"));
s.Add(new Daemon());
foreach (Monster m in s) m.Passport();
Console.ReadKey();
}
}
}Решение задачи: «Нужно ли использовать интерфейс IEnumerable?»
textual
Листинг программы
public IEnumerator GetEnumerator()
{
for (int i = 0; i < n; ++i) yield return mas[i];
}