Нужно ли использовать интерфейс IEnumerable? - C#

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

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

Здравствуйте! Подскажите пожалуйста , необходимо ли в строке 85
class Stado //: IEnumerable
указать , что предком класса class Stado является интерфейс IEnumerable ? P.S. Программа дает одинаковый результат , что с указанием этого , что без указания .
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];    
        }

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


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

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

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