2013-07-27 105 views
0

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

谢谢

+0

,直到A rray是* new'ed *,它将会是空的。你可以用'if'语句来检查。 –

+0

你也可以使用一个列表,并用新关键字'List arr =新列表;'初始化它。做这个课程级别你可以添加删除更改,无论你需要在任何地方 – tinstaafl

回答

2

我通常添加只读属性或功能类似这样的访问信息,并根据需要创建的基础数据。

private static int[] m_Array; 

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

     } 
    } 
+0

任何地方,所以你如何设置数组? –

+0

@Iran_Girl用这里的代码,你只需设置它的值,你不需要设置整个数组。如果由于某种原因无法正常工作,请让我们更多地了解您想要做的事情,并且我们可能会提出一些更合适的建议。 –

+0

@Iran_Girl:你只需要在数组中设置一个值。例如:arr [0] = 1; –

0

你可以做懒创建(分配,实例化)与懒惰<>类以及:

// 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) { 
    ...