可以创建一个全局变量吗?C#

4

在C#中是否可以将变量设置为全局变量?


可能是Visual C#中的全局变量的重复问题。 - Andrew Bezzub
6个回答

10

好的,你可以创建一个公共静态变量:

public static class Globals
{
    public static string Foo;
}

然而,我强烈建议您不要这样做:

  • 这会使得正在使用该变量的内容变得不清晰。
  • 没有任何线程安全的保障。
  • 会使得测试变得很麻烦(特别是如果您想并行运行测试)。

我强烈建议您尽力设计避免使用全局变量。如果您能告诉我们更多关于为什么您认为您需要一个全局变量,我们可能能够给您一些关于如何在这种情况下避免它的建议 :)


2

直接来说,你可以使用一个包含静态属性的静态类(不推荐),或者采用一种方式创建单例实例。更好的方法是使用一些依赖注入(dependency injection)的方式来提供值。


0
不是这样的。类似/解决方法是某个类的公共静态变量。希望对你有所帮助。

0
不一定。您可以创建一个新类,随便命名,将其设置为静态,并在其中拥有一个静态的公共属性/变量。
您为什么想这样做?这是一个常数吗?
如果它是一个常数值,您也可以在 Web/App 配置文件中使用 appsettings 节点。

0
你可以创建一个带有公共静态变量的公共类...但这并不是一个好的编程实践。

0

不能直接这样做,你可以使用一个带有静态属性的静态类(强烈不建议),或者采用某种方式创建单例(不建议)。更好的方法是使用某种依赖注入来提供值(推荐)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接