C# 2跨多个类重写ToString()方法

C# 2跨多个类重写ToString()方法,c#,C#,这就是我的代码的样子: public class Inventory { private List<Item> list = new List<Item>(); public List<Item> list { get; set; } public Inventory() { list = new List<Item>() { new Item("iPo

这就是我的代码的样子:

public class Inventory 
{

    private List<Item> list = new List<Item>();

    public List<Item> list { get; set; }

    public Inventory()
    {
        list = new List<Item>()
        {
            new Item("iPod"),
            new Item("Motorolla"),
            new Item("Samsung"),
            new Item("Nokia")
        };
    }

    public override String ToString() 
    {
        String stuff = null;

        for (int i = 0; i < list.Count; i++)
        {
            Item items = list[i];
            stuff += items.ToString();
        }

        return name + stuff;
    }
}
在我的Form.cs下:

private void Form1_Load(object sender, EventArgs e)
{
    var products = new Inventory();
    lstBox.Items.Add(products);     // Display products     
}
我的问题不是返回
“name+stuff”
,而是返回“ProductCost”,因为我已经初始化了一个Inventory对象,它不应该调用
Inventory
中重写的
ToString()
方法而不是我在Item.cs中的方法吗


注意:我需要同时实现这两个
ToString()
,因此,不,删除其中一个不会很不幸。

它返回
Item.ToString()
,因为您在执行
stuff+=items.ToString()时调用它

相反,只要做:

string stuff = "Items: ";

for (int i = 0; i < list.Count; i++)
{
    Item items = list[i];
    stuff += items.Name + ", ";
}

// Remove the last comma
stuff = stuff.Substring(0, s.LastIndexOf(", "));
return name + stuff;
而不是:

"Items: Ipod, Motorolla, Samsung, Nokia"

你问什么并不完全清楚——当你说“它返回”时,“它”是什么?程序是否正在运行并显示一个项目名为“ProductCost”的列表框?另外,它看起来不像你已经发布了所有相关的代码-在
Inventory.ToString()
中什么是
name
?是的,它在列表框中显示了产品成本,但我希望的实际上只是其中的名称+产品(列表)。它返回的名称是商店名称,因此我可以很容易地看出它没有返回我在Inventory.cs中创建的ToString()方法这里的代码示例有点不完整。
name
Inventory
类的属性/字段吗?另外,
ProductCost().ToString()
做什么?您似乎有三个
ToString()
方法,但只提供了其中两个方法的示例。Name有自己的公共属性提供访问权限,ProductCost()只计算产品*税,据我所知,我只做了两个ToString()分开的方法-一个在Item.cs中,另一个在Inventory中。cs@iStudent但是“它回来了”是什么意思?您的意思是
Item.ToString
,还是
Inventory.ToString
?哪一个给了你这个问题?另外,我不知道为什么您认为这两个独立的
ToString
方法是相互干扰的!您可以通过单击指向上的顶部箭头向上投票此答案,并通过单击复选标记将其作为答案接受吗?向上箭头和复选标记都在答案的左上角。你应该看看string.Join
"Items: Ipod, Motorolla, Samsung, Nokia, "
"Items: Ipod, Motorolla, Samsung, Nokia"