15

有人曾经说过

“全局变量”实际上是您创建的一个变量,只是为了“保存一些信息”,因为您的对象模型很弱,并且您还没有找到该变量存在的“真正目的”。全局变量几乎总是一个更大的架构畸形的标志。

那可能是真的。但是我不知道任何没有全局变量的大而好的程序的好例子,当然也没有像上面建议的那样少用。范围是实际的关键您可以在只有一个类的程序中说它的参数不是全局变量。但他们是。

反正...

我仍在掌握单例的概念,据我所知,它们实际上在 C# 中没有意义。我也觉得当无法避免全局状态时,我们仍然应该避免简单地使用一个充满静态属性的公共类:

那么,如果不是单例也不是公共类,我们应该怎么做才能在 C# 中拥有全局变量?

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

为什么我们应该避免使用静态类static一般情况下?如果 C# 确实如此。

一句话:在 Csharp 中使用全局变量的最佳实践是什么

4

1 回答 1

6

这都是上下文的问题。

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

这更好,因为现在您可以拥有多个context实例化,它们应该独立工作并且不会相互干扰。它也称为可重入上下文。

于 2012-04-12T18:40:11.833 回答