无法将数据设置到列表中然后打印它.

kam*_*dze 4 c# console

我试图将数据存储到复杂类型列表中,然后稍后打印.我试图使用属性,然后打印它,但似乎我错过了一些东西.请帮忙.

    class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Enter Color");
        string color = Console.ReadLine();
        Console.WriteLine("Enter transmition");
        string transmition = Console.ReadLine();
        Console.WriteLine("Enter Name");
        string name = Console.ReadLine();
        List<DatabaseCar> arr = new List<DatabaseCar> { };
        DatabaseCar databaseCar = new DatabaseCar(color, transmition, name);
        arr.Add(databaseCar);
        foreach (DatabaseCar data in arr)
        {
            Console.WriteLine(data);
        }
        Console.ReadKey();
    }
}

abstract class Data
{
    protected string color;
    protected string engine;
    protected string name;

    public abstract void set(string color, string engine, string name);

    public string Color
    {
        get
        {
            return color;
        }
    }
    public string Engine
    {
        get
        {
            return engine;
        }
    }
    public string Name
    {
        get
        {
            return name;
        }
    }
}

class DatabaseCar : Data
{
    public override void set(string color, string engine, string name)
    {
        this.color = color;
        this.engine = engine;
        this.name = name;
    }

    public DatabaseCar(string color, string engine, string name)
    {
        set(color, engine, name);
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到的结果是:

输入颜色:红色输入传输:手动输入名称:John ConsoleApp1.DatabaseCar

Fab*_*ous 6

这是因为对其他一个重载没有特别支持的对象的Console.WriteLine调用ToString().ToString()默认情况下,返回Type的字符串表示形式.

要解决这个问题,你必须使用自己想要的自定义实现来覆盖ToString().

public override string ToString()
{
    // construct the representation that you want and return it.
}
Run Code Online (Sandbox Code Playgroud)