我有是这样一种方法:通过传递参数未设置为一个实例对象,这些返回的对象refrence将表单类型传递给方法返回空引用?
public void Report(Form form, string[] textboxes, string[] patientdetails)
{
try
{
int i = 0;
foreach (string textbox in textboxes)
{
form.Controls.OfType<TextBox>().FirstOrDefault(n => n.Name == textbox).Text = patientdetails[i];
i++;
}
form.ShowDialog();
}
catch (Exception ex)
{
}
}
:
string[] textboxes = new string[] { "txtPatientName", "txtAge", "txtGender","txtTestType","txtDate" };
string[] patientDetails = new string[]{"Ammar Bashir", "19", "Male", "White Blood Cell Test", "12 March , 2013"};
//Test a winform which contain textboxes.
Report(Test, textboxes, patientDetails);
调试一下代码并告诉我们问题的实际位置。我猜测'FirstOrDefault(n => n.Name == textbox)'为这些文本框名称之一返回null。 – Tim 2013-03-13 03:10:36
这意味着它没有找到一个作为参数传递的窗体上的文本框,是的,这是抛出异常的代码行。 – 2013-03-13 03:27:45
正确......那么为什么字符串与表单上的内容不匹配? – Tim 2013-03-13 03:31:25