在C#中使用全局变量的最佳实践

时间:2012-04-12 18:35:38

标签: c# global-variables

Someone once said

  

“全局变量”实际上是您创建的变量,只是“保留一些信息”,因为您的对象模型很弱,并且您没有找到变量存在的“真实目的”。全局变量几乎总是表现出更大的建筑畸形。

That might be true。但我不知道任何没有全局变量的大型优秀程序的好例子,当然也没有像上面提到的那样少用。 Scope is the actual key。您可以说in a program with only one class其参数为not global vars。但他们是。

总之...

我仍然掌握 singleton 的概念,据我所知,他们actually在C#中毫无意义。我也感觉到,当一个全球状态无法避免时,我们仍然应该避免使用一个充满 static properties 的公共类:

所以,如果不是单身人士或公共课,我们应该怎样做才能在C#中拥有全球变量呢?

我们什么时候应该使用它们?假设他们很可能无法避免。如初。

为什么我们一般要避免使用static classstatic?如果C#确实如此。

用一句话来说:在Csharp 中使用全局变量的最佳做法是什么?

1 个答案:

答案 0 :(得分:6)

这完全是 context 的问题。

如果您可以确定计算所需的环境变量,则可以将该计算包装在更大的上下文中,其中全局外观 em>变量具有较窄的范围(它们现在是上下文的本地)。

这样做更好,因为现在您可以对上下文进行多次实例化,这应该独立工作而不会相互干扰。它也被称为可重入上下文。