【发布时间】:2011-09-13 22:15:56
【问题描述】:
是否可以重写 ToString() 方法来输出列表? 这是我的代码
namespace CircularClass
{
class InfinitelyCircular
{
public class RatsInAShip
{
public string RatBreed;
public string RatWeight;
public string RatAge;
public bool HasChildren;
public List<RatsInAShip> RatChildren;
public override string ToString()
{
return String.Format("RatBreed:{0}\n RatWeight:{1}\n RatAge:{2}\n HasChildren:{3}",RatBreed, RatWeight, RatAge, HasChildren);
}
}
static void Main(string[] args)
{
var mu = new RatsInAShip()
{
RatAge = "100",
RatBreed = "RexRat",
RatWeight = "200",
HasChildren = true,
RatChildren = new List<RatsInAShip>()
};
for (var i = 0; i < 3; i++)
{
var cu = new RatsInAShip()
{
RatAge = "100",
RatBreed = "DwarfRat"+i,
RatWeight = "200",
HasChildren = false
};
mu.RatChildren.Add(cu);
}
//Output
Console.WriteLine(String.Format("{0}, {1}", mu.RatBreed, mu.RatChildren[0]));
}
}
}
如何重写 ToString() 以输出列表中的所有子项?
【问题讨论】:
-
“列表”是什么意思?你说的是
List类吗?还是您只是指String中的逗号分隔列表? -
你不能,
ToString()和任何被覆盖的方法只能返回与父类相同的类型(在本例中为string)。你的意思是你想输出一个字符串,每个孩子单独一行? -
这个link 可能会有所帮助
标签: c# .net list class overriding