【问题标题】:Possible to make a global Var. C#可以制作一个全局变量。 C#
【发布时间】:2026-02-04 12:50:01
【问题描述】:

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

【问题讨论】:

标签: c#


【解决方案1】:

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

public static class Globals
{
    public static string Foo;
}

但是,我强烈建议您不要这样做:

  • 不清楚什么在使用该变量
  • 没有线程安全性
  • 这让测试变得很痛苦(特别是如果您想并行化测试)

我敦促您非常努力地设计远离全局变量。如果您能告诉我们更多关于您为什么认为自己想要全局变量的信息,我们或许可以就如何在这种特殊情况下避免它提供一些建议:)

【讨论】:

    【解决方案2】:

    不直接,您可以使用具有静态属性的静态类(不推荐)或使用均值来创建单例。更好的方法是使用某种依赖注入来提供值。

    【讨论】:

      【解决方案3】:

      不,不是。模拟/解决方法是某个类的公共静态变量。高温

      【讨论】:

        【解决方案4】:

        不是真的。您可以创建一个新类,将其命名为您想要的任何名称,将其设为静态,并在其上拥有一个静态公共属性/变量。

        为什么要这样做?这是一个常数吗?

        您也可以在您的 web/app 配置文件中使用(如果它是一个常量值)appsettings 节点。

        【讨论】:

          【解决方案5】:

          您可以使用公共静态变量创建一个公共类...但这确实不是一个好的编程习惯。

          【讨论】:

            【解决方案6】:

            不直接,您可以使用具有静态属性的静态类(强烈不推荐)或使用均值创建单例(不推荐)。更好的方法是使用某种依赖注入来提供值(推荐)。

            【讨论】: