我试图传递两个匹配的值(以十六进制和二进制匹配)并将它们放入从标签数组中随机选择的相应标签中。我只是熟悉.NET框架(4.0)。当我在调试“NullReferenceExceptionOccurred”时加载表单时尝试调试程序时返回。附加信息说明“对象引用未设置为对象的实例”。我已经检查但是我没有发现任何与使用标签数组有关的内容。该错误似乎出现在binaryLabels[j].Text = qstn;
行上。
以下是相关代码。
首先声明标签数组
public Random rand = new Random();
public Label[] binaryLabels = new Label[4];
public Label[] hexLabels = new Label[4];
在表单加载时指定标签
public void frmQstn1_Load(object sender, EventArgs e)
{
binaryLabels[0] = this.lblBinary1;
binaryLabels[1] = this.lblBinary2;
binaryLabels[2] = this.lblBinary3;
binaryLabels[3] = this.lblBinary4;
hexLabels[0] = this.lblHex1;
hexLabels[1] = this.lblHex2;
hexLabels[2] = this.lblHex3;
hexLabels[3] = this.lblHex4;
}
下面的代码行生成包含二进制和相应十六进制值的数组。
public void SetUpQuestionBnk()
{
string[] questions = { "0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111" };
string[] answers = { "0", "1", "2", "3","4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F" };
int i = rand.Next(0, questions.Length);
string qstn = questions[i];
string ans = answers[i];
int [] lblCount = { 0, 1, 2, 3 };
int j = rand.Next(0, lblCount.Length);
int k = rand.Next(0, lblCount.Length);
binaryLabels[j].Text = qstn;
hexLabels[k].Text = ans;
}
理论上,该代码应该在分别保存在数组“binaryLabels”和“hexLabels”中的随机选择的标签中显示字符串“qstn”和“ans”。
随机化在查看当地人时肯定有效,但与行binaryLabels[j].Text = qstn;
有关的错误大概是hexLabels[k].Text = ans;
如果有人知道如何解决这个问题,我们将非常感激。
编辑:**我已经检查了其他“解决方案”,但我不知道如何将它们应用于我的代码,因为所有其他解决方案似乎都没有使用随机值。 **