c# - 无法将数据设置到列表中然后打印。
问题描述
我正在尝试将数据存储到复杂类型列表中,然后再打印。我正在尝试使用属性然后打印它,但似乎我遗漏了一些东西。请帮忙。
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);
}
}
我从中得到的结果是:
输入颜色:红色输入传输:手动输入名称:John ConsoleApp1.DatabaseCar
解决方案
这是因为Console.WriteLine
调用ToString()
了一个没有被其他重载之一特别支持的对象。ToString()
默认情况下返回类型的字符串表示。
为了解决这个问题,您必须使用自定义实现来覆盖 ToString() 来满足您的需求。
public override string ToString()
{
// construct the representation that you want and return it.
}
推荐阅读
- python - 检查数据,如果数据无效,则返回或打印这些记录
- kubernetes - 存储桶中的 GCP 堆栈驱动程序日志记录格式从每个容器的文件夹更改为 stdout\stderr
- python - Python“无法调用'anonym_function_2”
- c# - System.Threading.Task 随机不调用它的动作?
- bash - 为什么这一行直到循环没有按预期运行?
- reactjs - Redux.connect(mapStateToProps)(MyComp) 未呈现(错误:对象作为 React 子项无效)
- php - 在 Doctrine (Symfony 4) 中的 NOT IN 子查询上出现错误
- r - 用ggplot写R函数
- python - 如何在 Python 中计算和绘制 CCDF(互补累积分布函数)?
- kotlin - 使用带有 Kotlin 的 URL().readText() 的错误编码