如何正确显示C#中结构体类型数组的商品名称与价格?
解决方法
你说得没错,问题确实出在Console.WriteLine(machine[i]);这行代码上。直接打印Product对象时,默认会输出对象的类型名称,而不是你需要的商品名称和价格。这里有两种简单的解决方式:
方式一:直接访问对象属性输出
修改循环内的代码,通过字符串插值直接读取Product对象的name和price属性,还可以格式化价格的显示:
for (int i = 0; i < machine.Length; i++) { Console.WriteLine($"{machine[i].name} - ${machine[i].price:F2}"); }
F2格式符会让价格保留两位小数,显示更规范。
方式二:重写Product类的ToString()方法
如果希望后续任何地方打印Product对象都能直接显示名称和价格,可以在Product类中重写ToString()方法:
public class Product { public string name { get; set; } public decimal price { get; set; } public override string ToString() { return $"{name} - ${price:F2}"; } }
这样原来的Console.WriteLine(machine[i]);就能正常输出你想要的内容了。
内容的提问来源于stack exchange,提问作者Ramunerl
相关产品推荐
相关产品推荐

