我有是這樣一種方法:通過傳遞參數未設置爲一個實例對象,這些返回的對象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