Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/25: Рейтинг темы: голосов - 25, средняя оценка - 4.64
98 / 81 / 16
Регистрация: 14.01.2011
Сообщений: 438

Реализация IEnumerable, IEnumerator

14.09.2011, 19:39. Показов 5266. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят подскажите,почему в этом коде ошибку выдаёт?Я через массив прогоняю ссылочные типы.Чтобы это сделать надо реализовать интерфейс IEnumerable.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    public class Car 
    {
        string firstname;
        int carid;
        int curspeed;
 
        public Car(string name, int id, int speed)
        {
            this.firstname = name;
            this.carid = id;
            this.curspeed = speed;
        }
        
    }
 
    class Garage:IEnumerable 
    {
        Car[] myauto;
 
        public Garage()
        {
            myauto = new Car[3];
            myauto[0] = new Car("Rusty", 1, 30);
            myauto[1] = new Car("Clunker", 2, 50);
            myauto[2] = new Car("Zippy", 3, 100);
        }
        public IEnumerator GetEnumerator()
        {
            return myauto.GetEnumerator();
        }
 
    }
        
    class DemoAuto
    {
        public static void Main(string[] args)
        {
            Garage carArray = new Garage();
 
            foreach (Car c in carArray)
            {
                Console.WriteLine("{0} is going with {1} speed,and id={2}", c.firstname, c.curspeed, c.carid);
            }
            Console.ReadLine();
        }
    }
}
Всего 2 ошибки:
Error 1 Using the generic type 'System.Collections.Generic.IEnumerable< T>' requires '1' type arguments
Error 1 Using the generic type 'System.Collections.Generic.IEnumerator< T>' requires '1' type arguments
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.09.2011, 19:39
Ответы с готовыми решениями:

Реализация интерфейсов IEnumerable<T> и IEnumerator<T>
Не получается реализовать интерфейсы, чтобы в самодельном списке стало возможным использование оператора foreach. Может кто привести пример...

Реализация интерфейсов IEnumerable и IEnumerator для перебора статей
В классе Magazine: реализовать интерфейс System.Collections.IEnumerable для перебора статей (объектов типа Article), авторы которых не...

IEnumerable, IEnumerator
Почему данный код не выводит информацию про студента? using System; using System.Collections; using System.Collections.Generic; ...

6
48 / 48 / 8
Регистрация: 26.08.2011
Сообщений: 84
14.09.2011, 19:50
Цитата Сообщение от NowMatrix Посмотреть сообщение
Всего 2 ошибки с одинаковым текстом:
Error 1 Using the generic type 'System.Collections.Generic.IEnumerable< T>' requires '1' type arguments
Не знаю почему Ваш Visual Studio Вам выдаёт такие ошибки, но я к примеру вижу следующую ошибку. У вас в классе Car следующие поля являются закрытыми:

C#
1
2
3
 string firstname;
int carid;
int curspeed;
И в тоже время вы пытаетесь получить доступ к этим полям здесь:

Цитата Сообщение от NowMatrix Посмотреть сообщение
Console.WriteLine("{0} is going with {1} speed,and id={2}", c.firstname, c.curspeed, c.carid);
Все члены C#, для которых явно не задан модификатор доступа, являются закрытыми, то есть private. Для решения вашей проблемы подпишите к вашим полям модификатор доступа public.
1
98 / 81 / 16
Регистрация: 14.01.2011
Сообщений: 438
14.09.2011, 19:59  [ТС]
У меня просто сначала свойства были для доступа - убрал на всякий случай, а доступ забыл изменить.А проблема осталась та же.
0
48 / 48 / 8
Регистрация: 26.08.2011
Сообщений: 84
14.09.2011, 20:06
Покажите вашу последнюю версию кода.
0
98 / 81 / 16
Регистрация: 14.01.2011
Сообщений: 438
14.09.2011, 20:11  [ТС]
Да тоже самое,только доступ сделал открытым для переменных класса Car.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    public class Car 
    {
        public string firstname;
        public int carid;
        public int curspeed;
 
        public Car(string name, int id, int speed)
        {
            this.firstname = name;
            this.carid = id;
            this.curspeed = speed;
        }
        
    }
 
    class Garage:IEnumerable 
    {
        Car[] myauto;
 
        public Garage()
        {
            myauto = new Car[3];
            myauto[0] = new Car("Rusty", 1, 30);
            myauto[1] = new Car("Clunker", 2, 50);
            myauto[2] = new Car("Zippy", 3, 100);
        }
        public IEnumerator GetEnumerator()
        {
            return myauto.GetEnumerator();
        }
 
    }
        
    class DemoAuto
    {
        public static void Main(string[] args)
        {
            Garage carArray = new Garage();
 
            foreach (Car c in carArray)
            {
                Console.WriteLine("{0} is going with {1} speed,and id={2}", c.firstname, c.curspeed, c.carid);
            }
            Console.ReadLine();
        }
    }
}
0
48 / 48 / 8
Регистрация: 26.08.2011
Сообщений: 84
14.09.2011, 20:24
NowMatrix, тут на самом деле всё очень просто. У вас подключено пространство имён System.Collections.Generic, в котором объявлены обобщённые коллекции и соответствующие интерфейсы. А вы в своём коде, а именно в классе Garage, наследуете интерфейс IEnumerable, который не является обобщённым. Для решения проблемы просто подключите пространство имён где объявлены не обобщённые коллекции и интерфейсы, а именно System.Collections.
2
98 / 81 / 16
Регистрация: 14.01.2011
Сообщений: 438
14.09.2011, 20:34  [ТС]
Ааа,вот в чём дело,спасибо большое,выручили))).Просто нахожусь на стадии изучения и трудно быстро самому искать ошибки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.09.2011, 20:34
Помогаю со студенческими работами здесь

IEnumerable и IEnumerable<T>, IEnumerator и IEnumerator<T>
Здравствуйте, расскажите, пожалуйста, максимально подробно в чем различие между интерфейсами, которые казаны в заголовке, когда они...

IEnumerable, IEnumerator
Есть код: using System; using System.Collections; namespace _58_IEnuerator_IEnuerable { class Program {

Интерфейсы IEnumerable and IEnumerator
Здравствуйте, у меня есть один класс, который содержит массив объектов другого класса. Мне нужно, что бы в мейне форич вывел объекты в...

Интерфейсы IEnumerable/IEnumerator
Недавно наткнулся на вопрос &quot;Почему для перебора элементов в среде .NET используется два интерфейса, а не один?&quot;, как ни копал, так и...

Недопонял задание с IEnumerable и IEnumerator
Здравствуйте. Не совсем понял задание. В прикрепленном файле, первое задание. Я так понял что я должен написать интерфейс и применить его к...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru