“全局变量”实际上是您创建的变量,只是“保留一些信息”,因为您的对象模型很弱,并且您没有找到变量存在的“真实目的”。全局变量几乎总是表现出更大的建筑畸形。
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 class或static
?如果C#确实如此。
用一句话来说:在Csharp 中使用全局变量的最佳做法是什么?
答案 0 :(得分:6)
这完全是 context 的问题。
如果您可以确定计算所需的环境变量,则可以将该计算包装在更大的上下文中,其中全局外观 em>变量具有较窄的范围(它们现在是上下文的本地)。
这样做更好,因为现在您可以对上下文进行多次实例化,这应该独立工作而不会相互干扰。它也被称为可重入上下文。