从其他实例化类访问和修改的公共静态变量,无需使用 getter 或 setter

本文关键字:变量 setter getter 静态 实例化 其他 访问 修改 | 更新日期: 2023-09-27 18:30:15

我一直在关注有关如何在 C# + XNA 中编写基本磁贴地图编辑器的教程,我对所使用的编码实践有疑问。主 Game 类包含许多公共静态变量,然后从其他实例化类访问和修改这些变量,而无需使用 getter 或 setter。这是不好的编码实践吗?链接到教程:http://www.youtube.com/watch?v=Tbs5EA-9Zfg

从其他实例化类访问和修改的公共静态变量,无需使用 getter 或 setter

我不会为了看到有问题的代码而看一堆视频,但如果这些是可变类型,那么我肯定会说这是一般编码中的糟糕做法。静态变量最终会使单元测试变得更加困难,并且由于所有全局状态,您的代码更难推理。根据我的经验,UI 代码经常违反最佳原则 - 我确信它不必如此,MVVM 在这方面为 WPF/Silverlight 提供了帮助。我会尝试使用您习惯于其他环境的最佳实践来编写代码,但请记住可能与某些 XNA 应用程序相关的任何性能影响。

如果公共静态变量实际上是常量(不可变类型的只读变量),那么我对此没有太大问题 - 尽管如果类型初始值设定项最终变得复杂,您可以获得类型初始值设定项循环,这可能是调试的噩梦。我刚刚写完一篇关于这个主题的博客文章。即使变量是私有的并且通过属性访问,您也可能会遇到同样的问题,尽管在这种情况下,您可以更轻松地更改计时。