无法为Array get set赋值

时间:2017-09-20 04:51:11

标签: asp.net arrays c#-4.0 properties

我对.net很新。我有一个获得和设置属性的类。现在,如果我想为这个数组赋值,我面临空引用。我无法指定值ORM.a[i] = dr["SUMMARY"].ToString();

public class method1
{
    public string[] a{ get; set; }
    public double[] b{ get; set; }
}

 publiv method1 GetResponseData()
{
    int i = 0;
    method1 ORM = new method1 ();

    foreach (DataRow dr in dtResultHistory.Rows)
    {
        ORM.a[i] = dr["SUMMARY"].ToString()  ;
        ORM.b[i] =   Convert.ToDouble( dr["AVG_TIME"]);

    }

    return ORM ;
}

2 个答案:

答案 0 :(得分:2)

你面临零异常,因为你没有创建它的实例。

类似

string[] a = new string [size];

如果你没有关于我将会有多少元素的详细信息,我建议你使用List。

示例:

public class method1
{
  public method1()
  {
     a = new List<string>();
     b = new List<double>();
  }

            public List<string> a{ get; set; }

            public List<double> b{ get; set; }
}

您之后的代码将是

 public method1 GetResponseData()
 {
     int i = 0;
     method1 ORM = new method1();

     foreach (DataRow dr in dtResultHistory.Rows)
     {
        ORM.a.Add(dr["SUMMARY"].ToString());
        ORM.b.Add(Convert.ToDouble( dr["AVG_TIME"]));
    }
    return ORM ;
}

答案 1 :(得分:2)

发生错误是因为ab属性都尚未初始化。首先在类构造函数中初始化它们:

public class method1
{
    public method1() {
        this.a = new string[100]; // We take 100 as an example of how many element the property can handle.
        this.b = new double[100];
    }

    public string[] a{ get; set; }

    public double[] b{ get; set; }
}