问一个关于属性与数组的有关问题

问一个关于属性与数组的问题。
之前我给100个参数名不同的参数设定属性,从而采用调用属性的方法对参数进行赋值(例如 Para p=new Para();p.power_1=3;)、而我现在把所有的参数放到数组里再设定属性就出错”未将对象引用到实例“
新代码如下:
    struct Status
     {
            private int[] data;
            public int[] Data
            {
                set
                {
                    this.data = value;
                }
                get
                {
                    return this.data;
                }
           }
     }
    private void button1_Click(object sender, EventArgs e)
    {
        Status sta = new Status();
        int[] t = sta.Data;
        textBox1.Text = (t[0]+1).ToString();
        textBox2.Text = (t[1]+2).ToString();
        textBox3.Text = (t[2]+3).ToString();
        textBox4.Text = (t[3]+4).ToString();
    }
              我知道问题在这里 int[] t = sta.Data; 从断点来看Data数组为空。
                我的目的是给int[] t 赋值初值分别为1,2,3,4 。而textbox最终结果
                是2,4,6,8
                谁能帮我解决下如何使Data不为空??一到数组就不会了,万分感谢!!!!!!!!!!
        (之前在data[0] = 1; data[1] = 2;data[2] = 3;data[3] = 4;)
        
------解决思路----------------------

struct Status
 {
       private int[] data;
       public int[] Data
       {
              set
              {
                     this.data = value;
              }
              get
              {
                     return this.data;
              }
       }
   
       public Status(int len)
       {
           this.data = new int[len];
       }
 }



private void button1_Click(object sender, EventArgs e)
{
Status sta = new Status(4);
int[] t = sta.Data;
textBox1.Text = (t[0]+1).ToString();
textBox2.Text = (t[1]+2).ToString();
textBox3.Text = (t[2]+3).ToString();
textBox4.Text = (t[3]+4).ToString();
}

------解决思路----------------------
private int[] data=new int[]{1,2,3,4};