Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Полиморфное поведение


Автор: 6atoh 21.9.2006, 22:56
У меня есть три класса, которые реализуют один базовый интерфейс ISorter. У каждого из них есть свой собственный метод Sort(). Как сделать так, чтобы допустим в цикле вызывался метод Sort(), но каждый раз для разного класса?

Автор: mr.DUDA 21.9.2006, 23:03
Цитата(6atoh @  21.9.2006,  22:56 Найти цитируемый пост)
Как сделать так, чтобы допустим в цикле вызывался метод Sort(), но каждый раз для разного класса?

А как выбирать класс, у которого дёргать Sort ? Случайным выбором ?
И откуда брать экземпляр, у которого вызывать ISorter.Sort ?

З.Ы. код в студию
  smile 

Автор: 6atoh 21.9.2006, 23:18
Ваще мне надо сделать вот что:
Invoke in polymorphic manner the sorting methods of 3 sorter classes starting with the class, the name of which was entered using the console window
у меня три класса: BubbleSorter, QuickSorter и ShakerSorter
Просто я думал можно создать массив обьектов этих классов(или нельзя smile)и с ним работать 

Автор: Exception 22.9.2006, 08:30
Код
List<ISorter> sorters = new List<ISorter>();
sorters.Add(new BubbleSorter());
sorters.Add(new QuickSorter());
sorters.Add(new ShakerSorter());
foreach(ISorter sorter in sorters)
{
   // ...
}

Автор: 6atoh 22.9.2006, 11:30
Код

List<ISorter> sorters = new List<ISorter>();


при компиляции выводит эррор MainClass.cs(26): ) expected.
что это может быть? У меня фреймворк 1.1

Автор: reloni 22.9.2006, 12:36
6atoh, дженерики только во втором фреймворке. Используй тогда например ArrayList.

Автор: 6atoh 22.9.2006, 13:13
Цитата(reloni @ 22.9.2006,  12:36)
дженерики только во втором фреймворке. Используй тогда например ArrayList.

спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)