可能会产生一个全局变量C#

可能会产生一个全局变量C#,c#,C#,是否可以在C#中使变量成为全局变量?那么,您可以使一个公共静态变量: public static class Globals { public static string Foo; } 但是,我强烈建议您不要这样做: 不清楚是什么在使用变量 没有线程安全性 它使测试成为一种痛苦(特别是如果您想并行化测试) 我强烈建议你们尽最大努力远离全球化的设计。如果您能告诉我们更多关于为什么您认为您需要一个全局变量的信息,我们可能会给您一些在这种特殊情况下如何避免它的建议:)不是直接的,您可以使

是否可以在C#中使变量成为全局变量?

那么,您可以使一个公共静态变量:

public static class Globals
{
    public static string Foo;
}
但是,我强烈建议您不要这样做:

  • 不清楚是什么在使用变量
  • 没有线程安全性
  • 它使测试成为一种痛苦(特别是如果您想并行化测试)

我强烈建议你们尽最大努力远离全球化的设计。如果您能告诉我们更多关于为什么您认为您需要一个全局变量的信息,我们可能会给您一些在这种特殊情况下如何避免它的建议:)

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

不,不是。模拟/解决方案是某类的公共静态变量。嗯

不太可能。您可以创建一个新类,任意调用它,将其设置为静态,并在其上具有静态公共属性/变量

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


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

您可以使用公共静态变量创建公共类……但这样做并不是一个好的编程实践。

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

可能的重复