Csharp/C Sharp by API/System.Collections/DictionaryBase
Версия от 18:31, 26 мая 2010; (обсуждение)
extends DictionaryBase
<source lang="csharp"> 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); } }
}
</source>