C# C类对象重置?

C# C类对象重置?,c#,C#,我想我可能知道我的问题是什么,但我不知道如何解决它。我试着用谷歌搜索它,但是没有看 假设我有3节课;菜单,商店和播放器。当你从商店买东西时,它会被添加到你的玩家类的库存中,然后你回到主菜单。然后选择查看您的库存 我有所有这些工作,但当我选择在主菜单查看我的库存,它里面没有任何东西。我知道这是可行的,因为我买了一件商品后,就在商店里打印了我的存货清单 我想这是因为我在菜单和商店类中制作了一个新对象 Menu.cs Shop shop = new Shop(); Player player = ne

我想我可能知道我的问题是什么,但我不知道如何解决它。我试着用谷歌搜索它,但是没有看

假设我有3节课;菜单,商店和播放器。当你从商店买东西时,它会被添加到你的玩家类的库存中,然后你回到主菜单。然后选择查看您的库存

我有所有这些工作,但当我选择在主菜单查看我的库存,它里面没有任何东西。我知道这是可行的,因为我买了一件商品后,就在商店里打印了我的存货清单

我想这是因为我在菜单和商店类中制作了一个新对象

Menu.cs

Shop shop = new Shop();
Player player = new Player();
Shop.cs

Menu menu = new Menu();
Player player = new Player();
我认为问题在于,当我在用户购买物品后将其发送回菜单时,它会创建一个新的Player对象,将其所有变量设置回默认值


我不太了解类和对象,因为我是通过实践学习的。但是有没有办法使它在返回菜单后不会自动重置?

是的,当您执行
新建任何内容()
时,它是一个带有默认选项和值的新实例

解决此问题的一种方法是在购买时将
播放器
实例传递给
商店
。(商店不需要在里面声明玩家,只需要使用现有玩家即可)。
在您传递给
商店的
播放器中,您将购买的物品添加到库存中。

是的,当您执行
新建任何内容()
时,它是一个具有默认选项和值的新实例

解决此问题的一种方法是在购买时将
播放器
实例传递给
商店
。(商店不需要在里面声明玩家,只需要使用现有玩家即可)。
在传递给
商店的
Player
中,您将购买的物品添加到库存中。

不要将Player对象存储在这些类中的每个类中,而是在某个重要类(例如主菜单?主类?)中只创建一个Player对象(即只使用
新Player()

然后,要从您的商店和菜单访问此播放器,请将其作为构造函数参数传入:

private Player player;

public Shop(Player player, OtherStuff here) {
    this.player = player;
}

不要将玩家对象存储在这些类中的每一个类中,而是在某个重要类(例如主菜单?主类?)中只创建一个玩家对象(即,只使用一次
new Player()

然后,要从您的商店和菜单访问此播放器,请将其作为构造函数参数传入:

private Player player;

public Shop(Player player, OtherStuff here) {
    this.player = player;
}

但是有没有办法使它在返回菜单后不会自动重置?
当然。不要通过创建新对象来重置它。只创建一个对象,并确保在两个位置都可以访问它。但是,如何进行这项操作将取决于您的具体情况。
但是有没有办法使它在返回菜单后不会自动重置?
当然。不要通过创建新对象来重置它。只创建一个对象,并确保在两个位置都可以访问它。然而,你如何去做将取决于你的具体情况。