C#(对象数组)对象引用未设置为对象的实例
本文关键字:对象 设置 实例 对象引用 数组 | 更新日期: 2023-09-27 18:28:56
我在这一行中得到对象引用错误:emp[count].emp_id=int.Parse(parts[0]);
在这个代码
这个程序从文件中读取并存储在对象数组中
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public class employees
{
public int emp_id;
public string firstName;
public string lastName;
public double balance;
}
private void btnOpen_Click(object sender, EventArgs e)
{
OpenFileDialog file = new OpenFileDialog();
DialogResult result = file.ShowDialog();
if (result == DialogResult.Cancel) return;
string fileName = file.FileName;
StreamReader reader = new StreamReader(fileName);
string[] lines = File.ReadAllLines(fileName);
int emp_count = lines.Count<string>();
employees[] emp = new employees[emp_count];
int count = 0;
foreach (string line in lines)
{
string[] parts = new string[4];
parts = line.Split(',');
**emp[count].emp_id = int.Parse(parts[0]);**
emp[count].firstName = parts[1];
emp[count].lastName = parts[2];
emp[count].balance = double.Parse(parts[3]);
count++;
txtGet.Text += emp[count].emp_id + " " + emp[count].firstName + " " + emp[count].lastName + " " + emp[count].balance + " 'n ";
}
您需要将emp[count]
初始化为某个值。
您可以添加以下内容:
foreach (string line in lines)
{
emp[count] = new employees();
string[] parts = new string[4];
//....
}
当您调用employees[] emp = new employees[emp_count];
时,您将emp
初始化为长度为emp_count
的employees
数组。
emp[0] = null;
emp[1] = null;
//etc.
emp
中的每个元素也需要实例化才能使用。
emp[0]
尚未初始化。类employees
是一个可以为null的类型,这意味着由它组成的数组被初始化为null。将emp[count]
初始化为new employees
。
顺便说一句,"employees
"对于一个容纳一名员工的类来说是一个奇怪的名字。我认为它应该被称为Employee
,然后像这样声明你的数组是有意义的:
`Employee[] employees = new Employee[emp_count];`