Получить количество элементов из другого класса

159
18 апреля 2022, 09:30

Столкнулся с проблемой, в одном классе когда заполняю список и вывожу его мне показует что в списке есть элементы. Но когда я хочу узнать количество этих элементов в другом классе, то мне показует что список пуст. Как решить эту проблему?

Класс 1

class Car
{
    private string name { get; set; }
    private string color { get; set; }
    private int speed { get; set; }
    private int year { get; set; }
    protected List<Car> spisok { get; set; } = new List<Car>();
    public void Buy()
    {
        for (int i = 0; i < 2; i++)
        {
            Console.WriteLine("Введите названия машины ->");
            name = Convert.ToString(Console.ReadLine());
            Console.WriteLine("Введите цвет машины ->");
            color = Convert.ToString(Console.ReadLine());
            Console.WriteLine("Введите скорость машины ->");
            speed = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Введите год випуска машины ->");
            year = Convert.ToInt32(Console.ReadLine());
            spisok.Add(new Car() { name = name, color = color, speed = speed, year = year });
        }
        //foreach(Car i in spisok)
        //{
        //    Console.WriteLine(i);
        //}
    }

Класс 2

class Garage:Car
{
    public void Delete()
    {
        foreach (Car i in spisok)
        {
            Console.WriteLine(i);
        }
    }
    public void Drive()
    {
    }
}

Main

static void Main(string[] args)
        {
            Car car = new Car();
            Garage garage = new Garage();
            car.Buy();
            garage.Delete();
            Console.ReadKey();
        }
Answer 1

spisok в "Класс 1" и spisok в "Класс 2" - это разные списки.

Случай тяжелый. Класс Car не должен содержать список объектов Car. А гараж не может наследовать от машины, потому что машиной не является. Тем не менее, покажите, как Вы вызываете методы Buy и Delete.

static void Main(string[] args)
{
   Garage garage = new Garage();
   garage.Buy();
   garage.Delete();
   Console.ReadKey();
}
READ ALSO
Как/Где хранить состояние авторизованного пользователя?

Как/Где хранить состояние авторизованного пользователя?

У меня есть сайт с авторизациейИ когда пользователь вводит верный пароль мне нужно сохранять некоторую информацию о нём в виде объекта User

131
Не до конца выполняется BackgroundWorker. C#

Не до конца выполняется BackgroundWorker. C#

Есть BackgroundWorker который выполняет некий кодПосле окончания работы, он должен написать переменную в label

142
Привязка данных в DataGridView

Привязка данных в DataGridView

Возникла такая проблемаУ меня есть моя структура:

156
Как окончательно сохранить ассет Scriptable object в Unity3d?

Как окончательно сохранить ассет Scriptable object в Unity3d?

В моей игре есть ассет со статистикойВ течение одной сессии всё работает прекрасно, данные спокойно перетекают по сценам

129