如何在控制台中显示结构对象
本文关键字:显示 结构 对象 控制台 | 更新日期: 2023-09-27 18:24:32
我已经为POS(销售点)编写了一个控制台应用程序。这是我的任务。我成功地完成了它,但我的教授要求用结构和列表再做一次。这是我的代码,只是结构和列表,我省略了不必要的应用程序代码:
namespace simplePOS
{
struct Product
{
public string productName;
public double productUnitPrice;
public int productQty;
}
class Program
{
static void Main(string[] args)
{
List<Product> Products = new List<Product>();
Product P;
P.productName = Console.ReadLine();
P.productUnitPrice = Convert.ToDouble(Console.ReadLine());
P.productQty = Convert.ToInt32(Console.ReadLine());
Products.Add(P);
foreach(Product x in Products){ //This doesn't work.
Console.WriteLine(x);
}
Console.ReadLine();
}
}
现在,正如你所看到的,我已经创建了一个结构,然后创建了一份列表,并在列表中保存了结构"p"的对象。现在我的问题是,我如何访问列表中保存的对象"P",以在某个循环中显示几个产品,比如for循环?
覆盖ToString()
struct Product
{
public string productName;
public double productUnitPrice;
public int productQty;
public override string ToString()
{
return string.Format("Name: {0}, Price: {1}, Qty: {2}",productName,productUnitPrice,productQty);
}
}
并继续使用
foreach (Product x in Products)
{
Console.WriteLine(x);
}
通过这种方式,您可以根据需要格式化
foreach(Product x in Products)
{
Console.WriteLine(x);
}
将给您类似于".Product"的结果,因为Product是一个结构。要获得正确的结果,您应该使用在产品结构中定义的属性。请参阅下面的
foreach(Product x in Products)
{
Console.WriteLine("Product: "+x.productName);
}
所以它会给你的结果
产品:abc
产品:xyz