Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2018, 12:09   #1
Artyom9912
Новичок
Джуниор
 
Регистрация: 03.12.2018
Сообщений: 1
Печаль Как мне реализовать работу метода Show() с пользовательскими типами?

Задание по учебе. В общем имеется класс Mas (контейнер) который должен уметь хранить в себе данные любого типа( как системного\встроенного, так и пользовательского), для этого надо создать свой класс (Car) и проверить работоспособность контейнера на нем. Контейнер так же должен иметь методы добавления, удаления и вывода инфы. Если со встроенными типами все понятно, то как мне выводить в консоль инфу о данных пользовательского типа (Car)? Программа не понимает, что я от нее хочу своим Console.Write(Car a), ибо в типе Car свои поля и т.п. Как мне реализовать работу метода Show() с пользовательскими типами? Хелп

Код:
    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);
        }
    }

Последний раз редактировалось Artyom9912; 03.12.2018 в 16:05.
Artyom9912 вне форума Ответить с цитированием
Старый 08.12.2018, 22:36   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

перегрузите (override) в классе Car метод ToString, внутри которого собирайте и возвращайте соответствующую строку
pu4koff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Продемонстрируйте работу метода сортировки простыми вставками по возрастанию Shved2298 Общие вопросы C/C++ 14 02.12.2017 23:34
Полиморфизм. Как реализовать вызов метода? katbka Общие вопросы C/C++ 12 20.05.2010 22:02
Как работать с пользовательскими полями в документах OOo Writer, используя С++ Elle_Urban Общие вопросы C/C++ 0 21.09.2009 20:30
Как мне реализовать такой переход на своей страничке сайта??? Stanislaw PHP 1 14.02.2009 17:17