2010-09-14 125 views
0

我们可以有一个通用属性吗?我有一个存储数据的要求。所以我已经采用通用属性的类。当我将数据添加到该属性时出现错误,“对象引用未设置为实例对象“。请告诉我一些想法。我们可以有genric属性吗?

 
class GeneralClass 
    { 
     private List<int> _student_rollnumber; 
     public List<string> _student_name; 
     public List<int> Student_RollNumber 
     { 
      get { return _student_rollnumber; } 
      set { _student_rollnumber = value; } 
     } 
     public List<string> Student_Name 
     { 
      get { return _student_name; } 
      set { _student_name = value; } 
     } 
    } 




我已经使用了按钮点击类。

 
private void btn_save_Click(object sender, EventArgs e) 
     { 
      try 
      { 
       GeneralClass obj = new GeneralClass(); 
       obj.Student_RollNumber.Add(int.Parse(txtbx_rollnum.Text)); 
       obj.Student_Name.Add(txtbx_SName.Text); 
       MessageBox.Show("Data saved"); 
      } 
      catch (Exception ex) 
      { 
       MessageBox.Show(ex.Message, "Message from form"); 
      } 
     }

回答

0

这与泛型没有任何关系。

你根本没有初始化的成员变量,即_student_rollnumber_student_name,所以他们null当您尝试Add值给他们。

+0

你能解释清楚吗? –

0

你不是初始化列表,所以它们默认null,这意味着你得到一个NullReferenceException当您尝试添加到他们在点击处理方法。

class GeneralClass 
{ 
    // initialise to a new List<int>, otherwise it will default to null 
    private List<int> _student_rollnumber = new List<int>(); 

    // initialise to a new List<string>, otherwise it will default to null 
    private List<string> _student_name = new List<string>(); 

    public List<int> Student_RollNumber 
    { 
     get { return _student_rollnumber; } 
     // chances are that you don't need the setter, uncomment it if you do 
     //set { _student_rollnumber = value; } 
    } 

    public List<string> Student_Name 
    { 
     get { return _student_name; } 
     // chances are that you don't need the setter, uncomment it if you do 
     //set { _student_name = value; } 
    } 
} 
+0

你能解释清楚吗? –

+0

谢谢你一个和所有 –

0
class GeneralClass 
    { 
     public GeneralClass 
     { 
      _student_rollnumber = new List<int>(); 
      _student_name = new List<string>(); 
     } 

     private List<int> _student_rollnumber; 
     public List<string> _student_name; 
     public List<int> Student_RollNumber 
     { 
      get { return _student_rollnumber; } 
      set { _student_rollnumber = value; } 
     } 
     public List<string> Student_Name 
     { 
      get { return _student_name; } 
      set { _student_name = value; } 
     } 
    } 
相关问题