因此,我是一个开始在学校学习C#的学生,我目前的项目之一涉及将可扩展的,类方法绑定的数组输出到窗体上的控件,而我遇到了一个令人困惑的问题。我已经将适当的访问修饰符设置为public,之前我已成功将这种格式用于可扩展数组,并且我的程序未显示任何构建错误,但不会输出数据。
我可以看到我的逻辑错误是我的数组声明的一部分,在过去的置换中似乎并没有扩大,尽管我目前的策略(称为Expand()
方法)直接增加了索引noobIdentifier
,是类中的通用变量,而不是实际方法。
//Create Form Instance
AttendanceReport report = new AttendanceReport();
//Expand Array
Expand();
//Create Array
int SIZE = noobIdentifier + 1;
Noob[] info = new Noob[SIZE];
//Assign Data to Array
info[noobIdentifier].s_class = Class;
info[noobIdentifier].s_name = Name;
info[noobIdentifier].s_id = ID;
info[noobIdentifier].s_password = Password;
info[noobIdentifier].s_formerDistrict = District;
info[noobIdentifier].s_grade = Grade;
info[noobIdentifier].s_country = Country;
info[noobIdentifier].index = SIZE;
它也可以是同一方法中我实际输出块的一部分。我已经考虑过尝试在列表框输出中使用For循环而不是Foreach,尽管后者看起来更为简洁。
//Ouput Gateway
if (output == true)
{
//Temp Holder
int i;
//Output items to Attendance Report Listbox
foreach (Noob noob in info)
{
//Send Index to string
string indexer = noob.index.ToString();
//Convert to Int
i = int.Parse(indexer);
report.newStudentSelectionBox.Items.Add(i);
}
}
//Output Text Gateway
if (textOutput > 0)
{
//Declare Index
int n = textOutput - 1;
report.classOutput.Text = info[n].s_class;
report.nameOutput.Text = info[n].s_name;
report.idOutput.Text = info[n].s_id.ToString();
report.gradeOutput.Text = info[n].s_grade.ToString();
report.districtOutput.Text = info[n].s_formerDistrict;
report.countryOutput.Text = info[n].s_country;
}
output
和textOutput
都是方法输入,textOutput
被声明为int
,因此可以用作对数组放置的直接引用。
尝试一下
在Noob
类中:
public class Noob
{
//Your Definition...
public override string ToString() => this.Name;
}
像这样修改循环:
//Output items to Attendance Report Listbox
foreach (Noob noob in info)
{
report.newStudentSelectionBox.Items.Add(noob);
}