我一直在关注如何在C#+ XNA中编写基本的tile map编辑器的教程,我对使用的编码实践有疑问.主Game类包含许多公共静态变量,然后从其他实例化类中访问和修改,而不使用getter或setter.这是不好的编码练习吗?链接到教程:http://www.youtube.com/watch?v = Tbs5EA- 9Zfg
我不打算观看一堆视频只是为了看到有问题的代码,但如果这些是可变的类型,那么我肯定会说这是一般编码的不良做法.静态变量最终会使单元测试变得更加困难,并且由于所有的全局状态,您的代码更难以推理.UI代码经常违反我的经验中的最佳原则 - 我确信它没有必要,并且MVVM在WPF/Silverlight的前端帮助.我尝试使用您在其他环境中习惯的最佳实践来编写代码,但请记住在某些XNA应用程序中可能存在的任何性能影响.
如果公共静态变量是有效的常数(恒定类型只读变量),那么我不会有太大的问题吧-尽管如果类型初始化结束了越来越复杂,你可以得到类型初始化周期可以是一个噩梦来调试.我刚刚写完一篇关于这个主题的博客文章.即使变量是私有的并且通过属性访问,您也可能会遇到相同的问题,尽管在这种情况下您可以更轻松地更改时间.