C# 如何一次性声明全局数组

C# 如何一次性声明全局数组,c#,arrays,global,C#,Arrays,Global,我有一个全局数组,但直到textbox事件发生变化,我才分配内存。 如何考虑数组的创建与否?!我想跑一次“新arr[6]” 谢谢我通常会添加一个只读属性或函数来访问这样的信息,并根据需要创建底层数据 private static int[] m_Array; public static int[] Arr { get { if (m_Array == null) {

我有一个全局数组,但直到textbox事件发生变化,我才分配内存。 如何考虑数组的创建与否?!我想跑一次“新arr[6]”


谢谢

我通常会添加一个只读属性或函数来访问这样的信息,并根据需要创建底层数据

    private static int[] m_Array;

    public static int[] Arr
    {
        get
        {
            if (m_Array == null)
            {
                m_Array = new int[6];
            }
            return m_Array;

        }
    }
您还可以使用惰性类进行惰性创建(分配、实例化):

  // Lazy creation of integer array with 6 items (declaration only, no physical allocation)
  private static Lazy<int[]> m_Array = new Lazy<int[]>(() => new int[6]);

  public static int[] Arr {
    get {
      return m_Array.Value; // <- int[6] will be created here
    }
  }

在数组被新建之前,它将只是空的。您可以使用
if
语句检查这一点。您也可以使用列表,并使用新关键字
list arr=new list初始化它。做这个类级别你可以添加删除更改,在类中任何地方你需要什么那么你如何设置数组@用这里的代码,你只需要设置其中的值,而不是设置整个数组。如果出于某种原因,这样做不起作用,请让我们了解更多有关您正在尝试执行的操作的信息,我们也许可以提出更合适的建议。@Iran_Girl:您只需要在数组中设置一个值。例如:arr[0]=1;
  if (m_Array.IsValueCreated) {
    ...