Nei*_*ght 5 c# xna static-variables
我正在编写一个XNA引擎,我将所有模型存储在一个List.为了能够在整个引擎中使用它,我已经做了这个,public static List<Model>所以我可以从我开发的任何新类访问它.它当然使获得模型列表真的很容易获得,但这是正确的用法吗?或者我会更好地在方法声明中传递变量?
对于游戏开发,我提倡"做最可能工作的最简单的事情".这包括使用全局变量(public static在C#中),如果这是一个简单的解决方案.你可以随时把它变成更正式的东西.Visual Studio中的"查找所有引用"工具使这非常简单.
话虽如此,极少数情况下全局变量实际上是做某事的"正确"方式.因此,如果您打算使用它,您应该了解并理解正确的解决方案.因此,您可以在"懒惰"和"编写好代码"之间做出最佳权衡.
如果你想要创造一些全球化的东西,你需要完全理解你为什么要这样做.
在这种特殊情况下,听起来你正试图尝试获取内容.您应该知道,如果您多次请求,ContentManager它将自动返回相同的内容对象.因此,而不是装载模式为全球性的列表,请考虑您的Game类的内置ContentManager可通过public static你的财产Game类.
或者,更好的是,有一种我更喜欢的方法,我觉得有点好:我在另一个问题的答案中解释它.基本上,你做的内容引用private static中使用它们并通过类ConentManager进public static LoadContent功能.这compartmentalises您的静态使用个人类,而不是使用从在你的程序访问的全球性(这将是以后难以自拔).它还可以在正确的时间正确处理加载内容.