|
Программирование >> Программирование с использованием ajax
Циклические ограничения типов, вроде тех, что показаны ниже, запрещены: class MyGenericClass<Tl, Т2> where Т2 : Tl where Tl : Т2 Этот код компилироваться не будет. В следующем практическом занятии демонстрируется пример определения и работы обобщенного класса с использованием семейства классов Animal, которые показывались в предыдущих главах. Определение обобщенного класса 1. Создайте новое консольное приложение по имени Chl2Ex04 и сохраните его в каталоге С:\BegVCSharp\Chapterl2. 2. Щелкните правой кнопкой мыши на имени этого проекта в окне Solution Explorer и выберите в контекстном меню, которое появится после этого, пункт AddAdd Existing Item (Добавить=>Добавить существующий элемент). 3. Выберите файлы Animal, cs, Cow.cs, Chicken, cs, SuperCow.cs и Farm.cs из каталога С: \BegVCSharp\Chapterl2\Chl2Ex02\Chl2Ex02 и щелкните на кнопке Add (Добавить). 4. Измените объявление пространства имен в каждом из добавленных файлов следующим образом: namespace Chl2Ex04 5. Измените код в файле Animal. cs, как показано ниже: public abstract class Animal { public abstract void MakeANoise () ; 6. Измените код в файле Chicken, cs следующим образом: public class Chicken : Animal { public override void MakeANoise () { Console.WriteLine( {0} says cluck! , name); 7. Измените код в файле Cow. cs следующим образом: public class Cow : Animal { public override void MakeANoise () { Console .WriteLine ( {0) says moo! , name) ; 8. Добавьте новый класс с именем SuperCow и измените код в файле SuperCow.cs следующим образом: public class SuperCow : Cow { public void Fly 0 { Console.WriteLine ( {0} is flying! , name); public SuperCow(string newName) : base(newName) public override void MakeANoise () { Console.WriteLine ( {0} says here I come to save the day! , name); 9. Добавьте новый класс с именем Farm и измените код в файле Farm, cs, как показано ниже: using System; using System. Collections; using System.Collections.Generic; using System.Linq; using System.Text; namespace Chl2Ex04 { pviblic class Farm<T> : 1ЕпгжвгаЫе<Т> where T : Animal private List<T> animals = new List<T>() ; pviblic List<T> Animals get { return animals; public IEnumerator<T> GetEnumerator () { return animals. GetEmmerator () ; lEnumerator lEnumerable.GetEnumerator() { return animals. GetEnumerator () ; public void MakeNoises () { foreach (T animal in animals) { animal.MakeANoise(); } public void FeedTheAnimals () { foreach (T animal in animals) { animal.FeedO ; public Farm<Cow> GetCows () { Farm<Cow> cowFarm = new Farm<Cow> () ; foreach (T animal in animals) if (animal is Cow) { cowFarm.Animals .Add (animal as Cow) ; return cowFarm; 10. Измените код в файле Program, cs следующим образом: static void Main(string[] args) Farm<Animal> farm = new Farm<Animal>(); farm.Animals.Add(new Cow( Jack )); farm.Animals.Add(new Chicken( Vera )); farm.Animals.Add(new Chicken( Sally )); farm.Animals.Add(new SuperCow( Kevin ));
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |