2012-11-16 26 views
0

,所以我有這個類數組類錯誤

namespace WindowsFormsApplication2 
{ 
    public class Records 
    { 
     public string name, surname; 

     public int num; 
    } 
} 

,我想創建這個類的一個陣列,都試過了,它仍然無法正常工作,我開始認爲這是一個錯誤,我我正在使用Visual Studio 2012,這裏是我的代碼。任何幫助將不勝感激。

(存在的一種形式,這是我打的是文本閱讀記錄一個DataGrid,信息與製表符分隔)

namespace WindowsFormsApplication2 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     Records[] userRecs = new Records[20]; 

     public int count = 0; 


     private void Form1_Load(object sender, EventArgs e) 
     { 
      getText(); 
     } 

     public void getText() 
     { 
      FileStream fs = new FileStream("D:\\filestr.txt",FileMode.Open); 

      StreamReader sr = new StreamReader(fs); 

      for (string readed = sr.ReadLine(); readed != null; readed = sr.ReadLine()) 
      { 
       string[] tempStr = readed.Split('\t'); 

       userRecs[count].num = Convert.ToInt32(tempStr[0]); 

       userRecs[count].name = tempStr[1]; 

       userRecs[count].surname = tempStr[2]; 

       count++; 
      } 

      for (int i = 0; i < count; i++) 
      { 
       dataGridView1.Rows.Add(userRecs[count].num, userRecs[count].name, userRecs[count].surname); 
      } 

      sr.Close(); 
      fs.Close(); 
     } 
    } 
} 
+4

以何種方式它不工作? –

+1

你會得到什麼錯誤,在哪裏? –

+3

即使你得到它的工作使用清單! – RAS

回答

8

這爲陣列分配內存,但不創建Record實例:

Records[] userRecs = new Records[20]; 

現在,當你通過你的文件中的行迭代,你需要實例類:

userRecs[count] = new Records(); 
userRecs[count].num = ... 
... 
+0

謝謝,一直想弄清楚幾個小時... – imdrunkisuppose

2
dataGridView1.Rows.Add(userRecs[count].num, userRecs[count].name, userRecs[count].surname); 

大概應該是

dataGridView1.Rows.Add(userRecs[i].num, userRecs[i].name, userRecs[i].surname); 
+1

它不應該考慮錯誤。但這是一個可能的錯誤,你發現:) –

+0

@LewsTherin,什麼錯誤? –

+0

最有可能的是NullReferenceException。沒有「記錄」被分配。 –