gpt4 book ai didi

c# - 什么时候使用静态变量?

转载 作者:行者123 更新时间:2023-11-30 13:08:59 24 4
gpt4 key购买 nike

我目前正在用 C# 做一个包含大量渲染的项目,并且在几乎所有类中都有一个整数类型的常量值用于缩放渲染。我知道我可以在一个地方将这个常量定义为一个普通变量然后传递它,但这看起来真的很麻烦。什么时候可以在 C# 中使用静态变量?解决我的问题的最简单方法是创建一个类,其中包含所有其他类都可以引用的静态变量——这会是糟糕的设计吗?

最佳答案

值的常数如何? static 适用于 readonly 的内容,但如果它不是 readonly,您很快就会陷入困惑> - 特别是如果你有多个线程。比例因子对我来说听起来不像是一个硬常数 - 即它不是:

public const double ScaleFactor = 1;

我会毫不犹豫地将静态变量用于我加载一次并单独放置的内容。除此之外,我可能会(在你的情况下)用这个值和任何其他实用方法封装某种 RenderContext - 并在方法之间传递 RenderContext ;如果您需要进行单元测试等,这还可以帮助您从底层实现中抽象出来。

当您发现需要更多属性时(您不可避免地会需要),您只需扩展 RenderContext 类 - 没有其他任何改变。


(编辑)

另外 - 考虑一下 future :您是否会同时进行多个渲染?因为我们现在都有很多核心,等等......如果所有线程共享一个值,静态是好的。有 [ThreadStatic],但相比之下有点乱。

关于c# - 什么时候使用静态变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/942353/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com