2010-10-28 63 views
4

是否可以在C#中创建一个可变的全局变量?可能使全局变量。 C#

+0

[Visual C#中的全局变量]的可能重复(http://stackoverflow.com/questions/1806387/global-variables-in-visual-c) – 2010-10-28 13:28:47

回答

10

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

public static class Globals 
{ 
    public static string Foo; 
} 

不过,我会强烈建议您做到这一点:

  • 变得不清楚是怎么使用变量
  • 没有线程安全
  • 它使测试变得痛苦(特别是如果你想平行测试)

我希望你努力设计远离全局。如果你可以告诉我们更多关于你为什么认为你想要一个全局变量,我们可能会给你一些建议,如何避免它在这种特殊情况下:)

2

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

0

不,它不是。模拟/解决方法是某些类的公共静态变量。 HTH

+0

P.S.学会接受答案 – 2010-10-28 13:24:29

0

不是。你可以创建一个新的类,将它称为任何你想要的,使其成为静态的,并且有一个静态的公共属性/变量。

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

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

0

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

0

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