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