Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 26.10.2014
Сообщений: 171

Вывод из ArrayList

21.12.2015, 20:32. Показов 1350. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Необходимо вывести из ArrayList объекты разных типов.Получается выводить только одного типа.При попытке вывода нескольких выводит ошибку "Не удалось привести тип объекта "Avia.Helikopter" к типу "Avia.Plane".Благодарю за помощь.
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
55
56
57
58
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace Avia
{
    class Program
    {
        static void Main(string[] args)
        {
 
 
            
 
            Plane p1 = new Plane("Миг 29",4000,500,15);
            Plane p2 = new Plane("Су 27", 3000, 600, 15);
            Plane p3 = new Plane("Ил 2",1600,400,4);
            Helikopter h1 = new Helikopter("Ми 8",1000,200,4,8);
            Helikopter h2 = new Helikopter("Ми 24", 1500, 300, 8, 20);
            Helikopter h3 = new Helikopter("Ка 52", 800, 200, 16, 0);
 
 
 
 
            p2.Polet(200);
            p1.Strelba(20);
            h1.Polet(150);
            h2.Desantirivanie(3);
 
            ArrayList eskadrila = new ArrayList();
            eskadrila.Add(p1);
            eskadrila.Add(p2);
            eskadrila.Add(p3);
            eskadrila.Add(h1);
            eskadrila.Add(h2);
            eskadrila.Add(h3);
 
            Console.WriteLine();
            foreach (Plane t in eskadrila) 
              t.Passport();
            
          //  foreach (Helikopter r in eskadrila)
           //     r.Passportt();
 
 
 
        //  foreach (Plane p in eskadrila)
          //  {
          //      if (p.GetType() == typeof(Plane)) p.Passport();
           //     else ((Helikopter)p).Passport();
          //  }
 
            
            Console.ReadKey();
        }
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.12.2015, 20:32
Ответы с готовыми решениями:

вывод из ArrayList
Есть класс, в котором содержатся данные о человеке(имя, профессия, рост, зарплата). Нужно было сделать динамический массив с помощью...

Вывод элементов из ArrayList
ArrayList myarr = new ArrayList(); myarr.Add(new Mars("Иванов Иван Иванович.",43)); // Добавили информацию класса Mars ...

Java вывод из БД в ArrayList
В Jav'е ноль, помогите, не могу понять, в чем косяк. Есть метод, который записывает полученный из БД список в ArrayList. Проблема в том,...

12
Заблокирован
21.12.2015, 20:34
предлагаешь телепатически узнать как у тебя описаны классы Avia.Helikopter и Avia.Plane? щас телепатофон настрою только
0
0 / 0 / 0
Регистрация: 26.10.2014
Сообщений: 171
21.12.2015, 20:42  [ТС]
Volrajas, Точно. Ступил. Просто думал что это полотно неудобно читать будет.
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace Avia
{
  public  class Plane : Charakters
      
 
    {
 
   
    
      public int bomb;
      public int celi;
     
 
 
        
 
        public int Bomb
        {
            get { return bomb; }
            set { bomb = value; }
        }
 
        public int  Celi
        {
            get { return celi; }
           
        }
        
 
 
        
 
        public Plane (string name, double daln, double toplivo, int bomb)
            : base(name, daln, toplivo)
 
 
        {
            this.daln = daln;
            this.toplivo = toplivo;
            this.bomb=bomb;
             this.name = name;
           
              celi = 0;
 
        }
        
        public void Strelba (int zalp)
        {
            if (bomb < zalp)
            {
                bomb = bomb;
               // Console.WriteLine("Недостаточно боеприпасов");
            }
            else 
            {
                
             Bomb = Bomb - zalp;
             celi = celi + zalp;
            }
               
 
        }
 
       new public void Passport()
        {
            Console.WriteLine("\n Название: {0} \nДальность: {1} км \nОставшееся топливо : {2} литров \nРакет {3} штук \nПоражено целей {4} \nРасход топлива на 1 км {5}литра ", name, daln, toplivo, bomb, celi, Rashod);
        }
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace Avia
{
    public class Helikopter : Charakters
    {
        int desant;
 
 
        public int Desant
 
       {
        get { return desant;}
        set { desant=value;}
       }
 
 
        public Helikopter(string name, double daln, double toplivo, int bomb, int desant)
            :  base(name, daln, toplivo)
        {
            this.desant = desant;
        }
 
          public void Desantirivanie (int des )
           {
               Desant = Desant - des;
           }
 
 
     public void Passport()
          {
              Console.WriteLine("\n Название: {0} \nДальность: {1} км \nОставшееся топливо : {2} литров \nРакет {3} штук \nПоражено целей {4} \n Десант на борту:{5} \n Расход топлива на 1 км {6}литра ", name, daln, toplivo,  desant);
          }
 
 
 
 
 
        
    }
}
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
55
56
57
58
59
60
61
62
63
64
65
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace Avia
{
 public   class Charakters
    {
 
        public double daln;
        public double toplivo;
        public string name;
 
        public double Daln
        {
            get { return daln; }
            set { daln = value; }
        }
        public double Toplivo
        {
            get { return toplivo; }
            set { toplivo = value; }
        }
 
        public string Name
        {
            get { return name; }
 
        }
 
 
        public double Rashod
        {
            get { return daln / toplivo; }
        }
 
 
        public  Charakters   (string name, double daln, double toplivo)
        {
            this.daln = daln;
            this.toplivo = toplivo;
           
             this.name = name;
           
            
 
        }
 
        public void Polet(double km)
        {
            Daln = Daln - km;
            Toplivo = Toplivo - km / 4;
 
 
        }
 
        public void Passport()
        {
            
        }
       
 
    }
}
0
Заблокирован
21.12.2015, 20:55
Цитата Сообщение от Zyf21 Посмотреть сообщение
C#
1
foreach (Plane t in eskadrila)
замени на
C#
1
foreach (Charakters t in eskadrila)
0
0 / 0 / 0
Регистрация: 26.10.2014
Сообщений: 171
21.12.2015, 20:58  [ТС]
Volrajas, в смысле где? По задумке классы Helikopter и Plane наследуют у Charakters, и потом уже они выводятся.
0
Заблокирован
21.12.2015, 20:59
Цитата Сообщение от Zyf21 Посмотреть сообщение
Volrajas, в смысле где? По задумке классы Helikopter и Plane наследуют у Charakters, и потом уже они выводятся.
где где в мейне в первом посте
0
0 / 0 / 0
Регистрация: 26.10.2014
Сообщений: 171
21.12.2015, 21:02  [ТС]
Volrajas, я думал он там не нужен. Он создавался для того чтобы с него наследовалось пара методов в другие классы.И уже с тех классов что то выводится.
0
Заблокирован
21.12.2015, 21:11
Цитата Сообщение от Zyf21 Посмотреть сообщение
Volrajas, я думал он там не нужен. Он создавался для того чтобы с него наследовалось пара методов в другие классы.И уже с тех классов что то выводится.
кто не нужен? ну и наследуй кто тебе не дает? просто если ты хочешь присваивать объекты обоих типов то тебе надо чтобы ссылка получалась базового класса
0
0 / 0 / 0
Регистрация: 26.10.2014
Сообщений: 171
21.12.2015, 21:16  [ТС]
Volrajas, а, получается нужно ссылаться на Charakters?
0
Заблокирован
21.12.2015, 21:20
Цитата Сообщение от Zyf21 Посмотреть сообщение
Volrajas, а, получается нужно ссылаться на Charakters?
да, от него же тот метод пронаследован, просто замени то что я писал в 4 посте
0
0 / 0 / 0
Регистрация: 26.10.2014
Сообщений: 171
21.12.2015, 21:27  [ТС]
Volrajas, выводит пустую консоль.
0
Заблокирован
21.12.2015, 21:31
Цитата Сообщение от Zyf21 Посмотреть сообщение
Volrajas, выводит пустую консоль.
значит что то не так в реализации классов, смотри ты их как то мутно наследуешь, я имею ввиду функцию Passport, то ты пишешь new, то вообще ничего, я сам вечно с наследованием путаюсь, но кажется надо писать override и там и там, кстати если тебе не нужна по сути реализация Passport в классе Plane (она у тебя пустая), то сделай функцию абстрактной (ну и класс соответственно), также возможно имеет сделать ее виртуальной, хотя я не уверен, сам так и не понял для чего это...
0
0 / 0 / 0
Регистрация: 26.10.2014
Сообщений: 171
21.12.2015, 21:42  [ТС]
Volrajas, я с ООП не очень дружу, поэтому пока не понимаю для чего функции делаются абстрактными или виртуальными.Лучше наверное сделать несколько ArrayList одного типа чтобы потом выводить по очереди из них.Другое с моими знаниями будет трудно реализовать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.12.2015, 21:42
Помогаю со студенческими работами здесь

Вывод элементов из ArrayList
Привет,подскажите ,пожалуйста,как вывести из обычного аррайлиста элементы например с первого по пятый?А то вот есть list.get,но он,как я...

Вывод в textbox данных из ArrayList
Здравствуйте. Имеется метод в другом классе с помощью которого выводятся данные в textbox.Эти данные нужно выводить в столбик, но они...

Вывод елементов ArrayList в консоль
Помогите плз, при выводе елементов ArrayList в консоль у выводится лишние строки? import java.io.BufferedReader; import...

Не работает вывод в цикле в ArrayList
Добрый день! Помогите,пожалуйста, разобраться почему не происходит перемещение между элементами Листа в цикле:wall: При отладке видно,...

Вывод данных из MsSql в ArrayList
Здравствуйте.Нужно вывести данные из нескольких таблиц, а затем занести их в ArrayList. Про попытке запуска появляется ошибка в строчке ...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru