当前位置: 首页 > 编程语言 > C#

什么时候使用静态变量?分享

时间:2023-04-10 19:26:13 C#

什么时候使用静态变量?我目前正在使用C#进行大量渲染的项目,并且在几乎所有类中,我都有一个整数类型的常量值来缩放渲染。我知道我可以在一个地方将这个常量定义为一个普通变量并传递它,但这看起来真是一团糟。C#什么时候可以使用静态变量?解决我的问题的最简单方法是创建一个包含所有其他类都可以引用的静态变量的类——这是糟糕的设计吗?设计还不错。事实上,使用公开静态方法和静态值的公共或实用命名空间和类可以将这些值集中在一个地方,这样您就可以确保应用程序中的每个模块都使用适当的值。这是低内聚,但具有可接受的好处。我觉得还好。该值有多恒定?static对于只读的东西很好,但如果它不是只读的,你很快就会搞砸-特别是如果你有多个线程。比例因子对我来说听起来不像是一个高深莫测的常量——也就是说,它不是:publicconstdoubleScaleFactor=1;我会毫不犹豫地为我加载一次并单独留下的东西使用静态变量。除此之外,我可能会(在你的情况下)用这个值和任何其他实用方法包装某种RenderContext-并在方法之间传递RenderContext;如果您需要进行从实现中抽象出来的单元测试等,这也可以帮助您从幕后获得帮助。当您发现需要更多属性时(您不可避免地会拥有),您只需扩展RenderContext类——无需进行其他更改。(编辑)另外-考虑未来:您不会一次进行多个渲染吗?因为我们现在都有很多核心等......如果所有线程共享一个值,静态就可以了。有[ThreadStatic],但相比之下有点混乱。不,这实际上是静态变量的完美候选者。您甚至可以更进一步,将类设为静态,这样它就无法被实例化。然后,您可以将所有常量添加到类中,并在必要时添加一些辅助方法。答案是,如果程序可以运行并且是可维护的,那就去做吧。静态变量不是罪过,只是知道何时使用它们。?如果你所有的类都必须理解这个值+做其他事情,那么(除非它像pi)你应该检查你的类是否只有一个问题。?也许“价值”需要是一个对象,它在整个代码库中执行它当前所做的事情?以上就是C#学习教程:什么时候使用静态变量?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: