Не может напечатать содержимое списка, вместо этого он печатает пространство имен и имя класса - PullRequest
1 голос
/ 13 июня 2019

Я добавляю в список легковые или грузовые автомобили, вводя их пользователем.Позже я хочу напечатать их в RichTextBox, дело в том, что он печатает пространство имен и имя класса вместо фактического содержимого.Мой код выглядит следующим образом:

Vehicle v0 = new Car(vehicleTypeString, textBoxPlate.Text, 
textBoxMake.Text, textBoxColour.Text, DateTime.Now, 
Car.parkingSpotInput); // These are just user input
vehicles.Add(v0);

foreach (Vehicle v in vehicles)
{
    if (v is Car)
    {
        richTextBoxCar.Text = v.ToString();
    }
    else
    {
        richTextBoxTruck.Text = v.ToString();
    }
}

Это может выглядеть как дубликат, но все остальные вопросы и ответы на них, похоже, не помогли.

1 Ответ

0 голосов
/ 14 июня 2019

Вы должны переопределить ToString() метод вашего класса.Что-то вроде:

public class Car
{
    private string VehicleType;
    private string BoxPlate;
    private string BoxColour;
    private string BoxMake;
    private DateTime CreationTime;
    private string ParkingSpotInput;

    public Car(string vehicleType, string boxPlate, string boxMake, string boxColour, DateTime creationTime, string parkingSpot)
    {
        this.VehicleType = vehicleType;
        this.BoxPlate = boxPlate;
        this.BoxColour = boxColour;
        this.CreationTime = creationTime;
        this.ParkingSpotInput = parkingSpot;
    }

    public override string ToString()
    {
        return $"VehicleType: {this.VehicleType}, BoxPlate: {this.BoxPlate}, BoxColour: {this.BoxColour}");
    }
}

Конечно, вы сами решаете, что именно вы хотите выводить в методе ToString.

и аналогичной реализации ToString для вашего класса Truck.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...