Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 03.12.2018
Сообщений: 1
1
.NET 4.x

Как выводить в консоль пользовательские типы из обобщенного контейнера?

03.12.2018, 12:13. Показов 1481. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задание по учебе. В общем имеется класс Mass (контейнер) который должен уметь хранить в себе данные любого типа( как системного\встроенного, так и пользовательского), для этого надо создать свой класс (Car) и проверить работоспособность контейнера на нем. Контейнер так же должен иметь методы добавления, удаления и вывода инфы. Если со встроенными типами все понятно, то как мне выводить в консоль инфу о данных пользовательского типа (Car)? Программа не понимает, что я от нее хочу своим Console.Write(Car a), ибо в типе Car свои поля и т.п. Как мне реализовать работу метода Show() с пользовательскими типами? Хелп!
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
class MyConsole
    {
        delegate void Delegate<W>(W a);
        
        public void Write(Car a)
        {
           Console.Write(a.marka + a.maxspeed + a.isnew);
        }
 
        public void Write(object b)
        {           
            Console.Write(b + " ");
        }          
    }
 
    class Mas<T> : MyConsole
    {
        private List<T> mas = new List<T>();
        int c = -1;
 
        public static int operator -(Mas<T> m1, Mas <int> m2)
        {
            return 0;
        }
        public static int operator -(Mas<T> m1, Mas<T> m2)
        {
            return m1 - m2;
        }
        public void Add(T a)
        {
            if (c == 4)
            {
                Console.WriteLine("Массив полон");
            }
            else
            {
                c++;
                mas.Add(a);
               
            }
        }        
        public void Del(T a)
        {
            if (c== -1)            
                Console.WriteLine("Массив пуст");
 
            
            mas.Remove(a);
            mas.Sort();
            c--;
        }
        
        public void Sort()
        {            
            mas.Sort();
        }
        public void Show()
        {
            int w = mas.Count();
            for (int x = 0; x < w; x++)
            {
                Console.Write(mas[x]);
                
            }
            Console.WriteLine();
            
        }
       
    }
    
    class Car 
    {
        public string marka;
        public int maxspeed;
        public bool isnew;       
 
        public Car(string marka, int maxspeed, bool isnew)
        {
            this.marka = marka;
            this.maxspeed = maxspeed;
            this.isnew = isnew;
        }
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            Mas<int> m1 = new Mas<int>();
            m1.Add(3);
            m1.Add(4);
            m1.Add(5);
            m1.Add(1);
            m1.Add(99);            
            m1.Show(); 
            
            m1.Del(99);
            m1.Del(5);
            m1.Add(76);            
            m1.Show();
 
            Mas<Car> m2 = new Mas<Car>();
            Car c1 = new Car("Mazda", 180, true);
            Car c2 = new Car("Toyota", 180, false);
            Car c3 = new Car("Audi", 300, true);
            m2.Add(c1);
            m2.Add(c2);
            m2.Add(c3);
            m2.Show();
            
            Console.ReadKey(true);
        }
    }
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.12.2018, 12:13
Ответы с готовыми решениями:

Пользовательские типы (перечислимые типы)
Дан временной период (число, месяц, год начала - число, месяц, год конца), год своего рождения и...

Пользовательские типы в union - Нужно ли инстализировать как-то String, Object или Array?
Во всех примерах в union используют простые типы (int, float), а если в union будет...

Надо добавить в код пользовательские типы, но что бы они небыли лишними, я незнаю как это сделать
#include &lt;stdio.h&gt; main() { unsigned long ip_host, mask, ip_d; system(&quot;cls&quot;); ...

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

1
484 / 439 / 123
Регистрация: 05.01.2010
Сообщений: 1,848
03.12.2018, 16:34 2
Лучший ответ Сообщение было отмечено Artyom9912 как решение

Решение

Цитата Сообщение от Artyom9912 Посмотреть сообщение
Если со встроенными типами все понятно, то как мне выводить в консоль инфу о данных пользовательского типа (Car)? Программа не понимает, что я от нее хочу своим Console.Write(Car a), ибо в типе Car свои поля и т.п.
переопределить метод ToString() в классе Car
1
03.12.2018, 16:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.12.2018, 16:34
Помогаю со студенческими работами здесь

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

Вектор и пользовательские типы
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;vector&gt; using namespace...

Пользовательские типы данных
Создать текстовый файл, состоящий из случайного количества (не более 30-и) строк. В каждой строке...

Оператор << и пользовательские типы
Есть оператор &lt;&lt; для пользовательского типа. Когда использую в одной строке этот же оператор для...

Пользовательские типы данных
Объясните пожалуйста как работают перечисления,для чего нужны и как их использовать. Читал лекции и...

Как выводить данные в консоль
#include &quot;stdafx.h&quot; #include &lt;conio.h&gt; int main() { static int i = 0; i++; getch(); return...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru