0

我有一个全局数组,但在文本框事件更改之前我没有分配内存。我如何考虑创建的数组?!我想运行一次“new arr [6]”。

谢谢

4

2 回答 2

2

我通常会添加一个只读属性或函数来访问此类信息,并根据需要创建基础数据。

    private static int[] m_Array;

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

        }
    }
于 2013-07-27T23:59:15.817 回答
0

您也可以使用Lazy<>类进行延迟创建(分配、实例化) :

  // 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
    }
  }

每当您想检查是否创建了值(在这种情况下为数组)时,请使用IsValueCreated

  if (m_Array.IsValueCreated) {
    ...
于 2013-07-28T06:25:05.683 回答