首页 > 解决方案 > 如何让两个类引用相同的对象列表?

问题描述

我有 3 个类(Rawmaterial、RawmaterialRepository 和 Storage),我想知道如何使 Storage 类具有为 RawmaterialRepository 创建的相同列表作为属性?在类程序中,我实例化了木材和存储库对象,并使用 addRawmaterial 方法将木材添加到存储库中。最后我实例化了 storage1 并调用了 StockAlert 方法,但它对我不起作用。出现一个错误,指出 Warehouse 类中的列表为空。这是我的代码。

public class Rawmaterial
{
    public string name;
    public int stock;

    public Rawmaterial(string name, int stock)
    {
        this.name = name;
        this.stock = stock;
    }
}
public class RawmaterialRepository
{
    public List<Rawmaterial> listRM = new List<Rawmaterial>();
    public RawmaterialRepository()
    {
        listRM = new List<Rawmaterial>();
    }
    public void addRawmaterial(Rawmaterial rawmaterial)
    {
        listRM.Add(rawmaterial);
    }
}
public class Storage
{
    public string name;
    public RawmaterialRepository listRM;
    public Storage(string name)
    {
        this.name = name;
        listRM = ; //this is a problem
    }

    public void StockAlert()
    {
        foreach (Rawmaterial rawmaterial in listRM.listRM) //this is a problem
        {
            if (rawmaterial.stock  <= 10)
            {
                Console.WriteLine("Sotck Alert");
            } 
        }
    }
}
class Program
{
    static void Main(string[] args)
    {
        Rawmaterial wood = new Rawmaterial("wood", 300) ;
        RawmaterialRepository repository = new RawmaterialRepository();
        repository.addRawmaterial(wood);
        Storage storage1 = new Storage("storage1");
        storage1.StockAlert();
}

PS你能帮帮我吗?我是新手。

标签: c#

解决方案


您可以将存储库传递给存储构造函数中的存储:

public Storage(string name, RawmaterialRepository listRM)
    {
        this.name = name;
        this.listRM = listRM; //this is a problem
    }

然后在Main

Storage storage1 = new Storage("storage1", repository );


推荐阅读