早安,
这是一个通用问题。
我对C#相当陌生,所以我已经为初学者阅读/完成了一些有关C#的教程和书籍。我正在尝试创建一个基于股票交易的游戏。目的是创建来自4个不同国家的80家公司,每个国家将拥有相同的10种不同商品。在游戏开始时,这些公司将分别出售10万股股票。我试图通过使用Company类跟踪所有这些情况,该类跟踪名称,国家,商品,起始价格,最后成交价格,可用库存和其他一些参数。我似乎遇到了“范围”问题,因为我无法访问创建的对象或对其进行更改。我的教程似乎并没有详细介绍该主题,只是说C#不像以前的语言那样支持Global Scope。我不想在“ Main”块中声明变量-我认为这就是为什么要创建一个新类的原因(使用类向导)。
我正在寻找开始的建议-我不在寻找解决方案(尚未,大声笑),我应该在哪里看?
谢谢您的时间。
如以上评论中所述,目前尚不清楚您的问题到底是100%的-但我会尽力引导您朝可能会有所帮助的方向发展。我的理解是,您希望有一个“中心”对象来存储游戏的状态,并且可以在整个代码中从不同的类和范围进行访问。我建议您看看Static Classes。
静态类是仅具有一个全局实例的类。这意味着您可以从程序中的任何位置访问存储在该静态类范围内的任何信息。一个可能包含您所需信息的简单类的示例将是这样的-
public static class GameState
{
public static List<Company> Companies = new List<Companies>();
public static List<Country> Countries = new List<Country>();
public static List<Commodity> Commodities= new List<Commodity>();
}
使用这样的东西,您可以在代码中的任何位置访问这些静态成员(Companies
,Countries
,Commodities
)中的任何一个,只需引用静态类即可,例如
var numOfCountries = GameState.Countries.Count
结束之前只是一句话-我并不是完全主张在任何实际应用中使用这种方法。这不是一个很好的做法,它有很多缺点-例如,在我上面建议的类中,您整个程序只能具有1个游戏状态-想象一下,如果您想将程序转换为管理程序的服务器,将会发生什么情况许多玩家并行游戏的状态。但是,考虑到您提到您是C#的新手,我认为这是最简单的解决方案,可以帮助您上路。