C# C类对象重置?
我想我可能知道我的问题是什么,但我不知道如何解决它。我试着用谷歌搜索它,但是没有看 假设我有3节课;菜单,商店和播放器。当你从商店买东西时,它会被添加到你的玩家类的库存中,然后你回到主菜单。然后选择查看您的库存 我有所有这些工作,但当我选择在主菜单查看我的库存,它里面没有任何东西。我知道这是可行的,因为我买了一件商品后,就在商店里打印了我的存货清单 我想这是因为我在菜单和商店类中制作了一个新对象 Menu.csC# C类对象重置?,c#,C#,我想我可能知道我的问题是什么,但我不知道如何解决它。我试着用谷歌搜索它,但是没有看 假设我有3节课;菜单,商店和播放器。当你从商店买东西时,它会被添加到你的玩家类的库存中,然后你回到主菜单。然后选择查看您的库存 我有所有这些工作,但当我选择在主菜单查看我的库存,它里面没有任何东西。我知道这是可行的,因为我买了一件商品后,就在商店里打印了我的存货清单 我想这是因为我在菜单和商店类中制作了一个新对象 Menu.cs Shop shop = new Shop(); Player player = ne
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;
}
但是有没有办法使它在返回菜单后不会自动重置?
当然。不要通过创建新对象来重置它。只创建一个对象,并确保在两个位置都可以访问它。但是,如何进行这项操作将取决于您的具体情况。但是有没有办法使它在返回菜单后不会自动重置?
当然。不要通过创建新对象来重置它。只创建一个对象,并确保在两个位置都可以访问它。然而,你如何去做将取决于你的具体情况。