所以我有这个课程
namespace WindowsFormsApplication2
{
public class Records
{
public string name, surname;
public int num;
}
}
我想创建一个这个类的数组,尝试了一切,它仍然无法工作,我开始认为这是一个错误,我使用Visual Studio 2012,这是我的代码。任何帮助将不胜感激
(表单上有一个记录的数据网格,我正在从文本框中读取,信息与制表符分开)
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();
}
}
}
答案 0 :(得分:8)
这为数组分配内存,但不创建Record实例:
Records[] userRecs = new Records[20];
现在,当您遍历文件行时,需要实例化您的类:
userRecs[count] = new Records();
userRecs[count].num = ...
...
答案 1 :(得分: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);