'new'正在创建一个空数组,而不是一个空值类数组

use*_*972 0 c# arrays null struct class

我上课了

namespace MyClassNameSpace {
   public struct a {
       public float Time;
       public float High;
   }
   public class SoC {
       public string Name;
       public a[] Stock =new a[9];
   }
Run Code Online (Sandbox Code Playgroud)

}

在Form1中,我创建了一个SoC数组:

public static SoC[] b = new SoC[5];
private void Form1_KeyUp(object sender, KeyEventArgs e) {
    b[1].Name = "ABC"
}
Run Code Online (Sandbox Code Playgroud)

问题是这b是一个空数组而不是一个empty(归零)SoC 数组...我该怎么改变它?

ada*_*ost 9

您正在创建Reference(class)类型的引用变量数组.该声明,

public static SoC[] b = new SoC[5];
Run Code Online (Sandbox Code Playgroud)

创建5个初始值为null的引用变量.

这样你就可以创建对象:

for(int i=0;i<b.Length;i++) {
    b[i]=new SoC();
}
Run Code Online (Sandbox Code Playgroud)