extends DictionaryBase : DictionaryBase « System.Collections « C# / C Sharp by API






extends DictionaryBase

  

using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;

public abstract class Animal {
    protected string name;

    public string Name {
        get {
            return name;
        }
        set {
            name = value;
        }
    }

    public Animal() {
        name = "The animal with no name";
    }

    public Animal(string newName) {
        name = newName;
    }

    public void Feed() {
        Console.WriteLine("{0} has been fed.", name);
    }
}

public class Chicken : Animal {
    public void LayEgg() {
        Console.WriteLine("{0} has laid an egg.", name);
    }

    public Chicken(string newName)
        : base(newName) {
    }
}
public class Cow : Animal {
    public void Milk() {
        Console.WriteLine("{0} has been milked.", name);
    }

    public Cow(string newName)
        : base(newName) {
    }
}

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 new IEnumerator GetEnumerator() {
        foreach (object animal in Dictionary.Values)
            yield return (Animal)animal;
    }

    public Animal this[string animalID] {
        get {
            return (Animal)Dictionary[animalID];
        }
        set {
            Dictionary[animalID] = value;
        }
    }
}

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() + myAnimal.Name);
        }

    }
}

   
    
  








Related examples in the same category