Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将表单类型传递给方法会返回空引用吗?_C#_Winforms_Telerik_Object Reference - Fatal编程技术网

C# 将表单类型传递给方法会返回空引用吗?

C# 将表单类型传递给方法会返回空引用吗?,c#,winforms,telerik,object-reference,C#,Winforms,Telerik,Object Reference,我有一个方法是这样的: public void Report(Form form, string[] textboxes, string[] patientdetails) { try { int i = 0; foreach (string textbox in textboxes) { form.Controls.OfType<Text

我有一个方法是这样的:

    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)
        {
        }
    }

在没有看到代码的其余部分或不知道异常是由哪一行引发的情况下,我猜想您在将异常传递给方法之前没有初始化
Test

不是那样,就是

 form.Controls.OfType<TextBox>().FirstOrDefault(n => n.Name == textbox)
form.Controls.OfType().FirstOrDefault(n=>n.Name==textbox)

未找到匹配项,因此返回
null
。然后在
null
上调用
Text
,这将引发异常。

我知道了,实际上所有的文本框都在splitContainer的第一个splitterPanel中,我用它们的“控件”属性遍历它们,并更改了文本框的文本属性……感谢大家的支持。

稍微调试一下代码,告诉我们问题的实际位置。我猜
FirstOrDefault(n=>n.Name==textbox)
为其中一个textbox名称返回null。这意味着它在作为参数传递的表单上找不到textboxs,是的,这是引发异常的代码行。对。。。那么为什么字符串和表单上的内容不匹配呢?表单上有五个名为string[]的textbox控件文本框但当我试图直接在事件上执行此操作时,它工作良好,我不知道如何解决此问题?Test是一个winform类,在传递给方法时已初始化。当我以同样的方式不使用方法时,它工作得很好。但不知道为什么传递参数返回null。
 form.Controls.OfType<TextBox>().FirstOrDefault(n => n.Name == textbox)