Csharp/CSharp Tutorial/Data Structure/DictionaryBase

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

extends DictionaryBase

<source lang="csharp">using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text;

   public class Animals : DictionaryBase
   {
       public void Add(string newID, Animal newAnimal)
       {
           Dictionary.Add(newID, newAnimal);
       }
       public void Remove(string animalID)
       {
           Dictionary.Remove(animalID);
       }
       public Animals()
       {
       }
       public Animal this[string animalID]
       {
           get
           {
               return (Animal)Dictionary[animalID];
           }
           set
           {
               Dictionary[animalID] = value;
           }
       }
       public new IEnumerator GetEnumerator()
       {
           foreach (object animal in Dictionary.Values)
               yield return (Animal)animal;
       }
   }
   public abstract class Animal
   {
       protected string name;
       public string Name
       {
           get
           {
               return name;
           }
           set
           {
               name = value;
           }
       }
       public Animal()
       {
           name = "no name";
       }
       public Animal(string newName)
       {
           name = newName;
       }
       public void Feed()
       {
           Console.WriteLine("feed:"+ name);
       }
   }
   public class Chicken : Animal
   {
       public void LayEgg()
       {
           Console.WriteLine("egg:"+ name);
       }
       public Chicken(string newName)
           : base(newName)
       {
       }
   }
   public class Cow : Animal
   {
       public void Milk()
       {
           Console.WriteLine("Milk:"+ name);
       }
       public Cow(string newName): base(newName)
       {
       }
   }
   class Program
   {
       static void Main(string[] args)
       {
           Animals animalCollection = new Animals();
           animalCollection.Add("A", new Cow("A"));
           animalCollection.Add("B", new Chicken("B"));
           foreach (Animal myAnimal in animalCollection)
           {
               Console.WriteLine(myAnimal.ToString());
               Console.WriteLine(myAnimal.Name);
           }
       }
   }</source>