C#如何创建从另一个类的列表的引用?
问题描述:
所以我有这个产品清单。C#如何创建从另一个类的列表的引用?
现在,我想要做的是在另一个类的foreach循环这个列表。
如何在我想要循环的类中对AllProducts进行引用?
public List<Product> AllProducts;
AllProducts = new List<Product>();
foreach (product p in AllProducts)
{
Console.WriteLine(p);
}
答
public class A
{
//Property
//must be set somewhere (e.g. constructor)
public List<Product> Products { get; private set; }
//Method
public List<Product> GetProducts()
{
//return list of products
}
}
public class B
{
public void Display()
{
var a = new A();
foreach (var product in a.Products /*OR a.GetProducts()*/)
{
Console.WriteLine(product);
}
}
}
答
如果您在类中的方法是有一个列表并将其命名为类似“展示Products()”,并为Console.WriteLine,并在你的主类调用该方法重复这将是更好的。
+0
喜!是的好吧,我已经这样做了: public list
答
public List<Product> fillProduct()
{
List<Product> AllProducts = new List<Product>();
//fill
}
private void btnAdd_Click(object sender, EventArgs e)
{
foreach (product p in fillProduct())
{
Console.WriteLine(p);
}
}
你可以这样做
您是否建议同时拥有*既*属性和方法?如果是的话,那就是糟糕的设计,违反了DRY(不要重复自己)原则。 – Kapol
当然不是,我只是把它放在那里展示可能的方法来解决这个问题。 OP应该做出使用财产或方法的决定。 –
好吧,+1 :-) – Kapol