COY*_*OYG 0 c# class list member
我有一个列表,我正在读取数据.我检查了如何输出列表但是对其他人有用的东西对我不起作用.我注意到我看到的所有例子都没有像我一样在列表中使用过类,我找不到这样的例子.
这是我的代码:
private static void AddCar(Vechicle _Motor, List<Vechicle> vehicles)
{
//int number = 1;
Console.Clear();
Vechicle v = new Vechicle();
Console.Write("/////////////////////ADDING CAR DETAILS\\\\\\\\\\\\\\\\\\\\\\\\");
Console.Write("\n\nEnter Make: ");
v.Make = Console.ReadLine();
Console.Write("\n\nEnter Model: ");
v.Model = Console.ReadLine();
Console.Write("\n\nEnter Year: ");
v.Year = Console.ReadLine();
vehicles.Add(v);
Console.Clear();
foreach (Vechicle value in vehicles)
{
Console.WriteLine(vehicles);
}
}
Run Code Online (Sandbox Code Playgroud)
这是输出:

谢谢你的帮助!
我现在改变了:
foreach (Vechicle value in vehicles)
{
Console.WriteLine(vehicles);
}
Run Code Online (Sandbox Code Playgroud)
至:
foreach (Vechicle value in vehicles)
{
Console.WriteLine(value);
}
Run Code Online (Sandbox Code Playgroud)
正如评论中所建议的,但现在我明白了:

默认情况下,Console.WriteLine调用ToString你传递的参数是 - 因为你传递集合它使用的默认实现ToString只是打印类名.
如果Vehicle覆盖.ToString了一些合理的输出(请参阅其他实现答案)而不是简单地传递value给Console.WriteLine:
foreach (var value in vehicles)
{
Console.WriteLine(value);
}
Run Code Online (Sandbox Code Playgroud)
或直接打印您需要的东西:
foreach (var value in vehicles)
{
Console.WriteLine("Make: {0}, model:{1}", value.Make, value.Model);
}
Run Code Online (Sandbox Code Playgroud)
对于.ToString()考虑使用String.Format,因为它会给予超过格式化选项+,如果你想与固定withd或非默认的数字格式的内容:
public class Vehicles
{
....
public override string ToString()
{
return String.Format("Make: {0}, model:{1}", Make, Model);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
49 次 |
| 最近记录: |