我正在尝试将数据存储到复杂类型列表中,然后稍后打印。我正在尝试使用属性然后打印它,但似乎我错过了一些东西。请帮忙。
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);
}
}
我从中得到的结果是:
输入颜色:
红色的
输入传输:
手动的
输入名字:
约翰
ConsoleApp1.DatabaseCar
最佳答案
这是因为 Console.WriteLine
对一个对象调用 ToString()
,该对象不受其其他重载之一的特别支持。 ToString()
默认返回类型的字符串表示。
为了解决这个问题,你必须用一个自定义的实现来覆盖 ToString() 来做你想要的。
public override string ToString()
{
// construct the representation that you want and return it.
}
关于c# - 无法将数据设置到列表中然后打印出来。,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51269648/