我有一个全局数组但是在文本框事件更改之前我没有分配内存。 我怎么能考虑创建或不创建数组?!我想一次运行“new arr [6]”。
谢谢
答案 0 :(得分:2)
我通常会添加一个只读属性或函数来访问这样的信息,并根据需要创建基础数据。
private static int[] m_Array;
public static int[] Arr
{
get
{
if (m_Array == null)
{
m_Array = new int[6];
}
return m_Array;
}
}
答案 1 :(得分: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) {
...