在Visual C#中创建全局变量

时间:2013-09-18 20:02:41

标签: c# variables global

我知道大多数情况下全局变量都不是一个好主意(特别是在OOP中),但是我需要创建一个可以被我的应用程序中的任何函数或类读取的数组(基本上,数组将存储我只想从MySQL数据库中读取一次的数据。

有人建议我创建一个“Variables”类,但我看到的问题是我必须创建该类的“公共”(或全局)实例,所以创建一个类没有'从我能看到的东西中真正解决了我的问题(不过我可能错了)。

如何创建一个可供所有类和方法看到的全局变量数组?

3 个答案:

答案 0 :(得分:4)

你想要一个静态类。

public static class Global
{
   public static string[] GlobalArray { get; set; } 

   static Global()
   {
       GlobalArray =  //etc  
   }
}

可以通过以下方式从任何地方访问:

var x = Global.GlobalArray;

答案 1 :(得分:2)

您无法在C#中创建全局变量,但可以使用静态属性创建静态类。

public static class Global
{
   public static string[] MyGlobalArray{ get; set;}
}

答案 2 :(得分:1)

您需要singleton pattern

public class Variables
{
  private static Variables instance = new Variables();

  public static Variables Instance
  {
    get
    {
      return instance;
    }
  }

  public string[] GlobalArray { get; set; } 
}

// Usage
var myGlobalArray = Variables.Instance.GlobalArray;

另见: