在c#中发送参数错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在c#中发送参数错误相关的知识,希望对你有一定的参考价值。

我在c#中编写了以下代码,经过多次尝试后,我仍然在注释行中遇到同样的错误

错误消息:“方法名称预期”

那么请告诉我为我的LoadSpeceficSontrol函数发送“tmp”变量的适当方法。任何帮助都提前得到赞赏。

 private void AddBox()
    {
        Thread thread= new Thread(() => LoadControls());
        thread.Start();
    }

    delegate void LoadControlsCallback();

    private void LoadControls()
    {
        int Nu = int.Parse(PageNumber.Text);
        for (int i = (Nu - 1) * 100; i < Nu * 200 && i < MoviesList.Count; i++)
        {
            MovieControl tmp = new MovieControl(MoviesList[i]);
            if (tmp.InvokeRequired || MoviesFlowPanel.InvokeRequired)
            {
                LoadControlsCallback d = new LoadControlsCallback(LoadSpeceficControl, new object[] {tmp}); // error here
                this.Invoke(d);
            }
            else
            MoviesFlowPanel.Controls.Add(tmp);
        }
    }

    private void LoadSpeceficControl(MovieControl tmp)
    {
        MoviesFlowPanel.Controls.Add(tmp);   
    }

代码版本2.0

private void AddBox()
{
    Thread thread= new Thread(() => LoadControls());
    thread.Start();
}

private void LoadControls()
{
    int Nu = int.Parse(PageNumber.Text);
    for (int i = (Nu - 1) * 100; i < Nu * 200 && i < MoviesList.Count; i++)
    {
        MovieControl tmp = new MovieControl(MoviesList[i]);
        if (tmp.InvokeRequired || MoviesFlowPanel.InvokeRequired)
        {
            this.Invoke((MethodInvoker)delegate { MoviesFlowPanel.Controls.Add(tmp); });
        }
        else 
        MoviesFlowPanel.Controls.Add(tmp);
        tmp = null;
    }
}
答案

应该是这样的:

delegate void LoadControlsCallback(MovieControl tmp);

LoadControlsCallback d = LoadSpeceficControl;
d(tmp);
另一答案

您对LoadControlsCallback的委托定义应与签名匹配。就像你如何使用它,它应该看起来像:

delegate void LoadControlsCallback(Action<MovieControl> action, object[] objarray);

以上是关于在c#中发送参数错误的主要内容,如果未能解决你的问题,请参考以下文章

错误 3002:映射片段中的问题 | c# linq 到实体

我应该如何使用 Outlook 发送代码片段?

我的C语言学习进阶之旅解决 Visual Studio 2019 报错:错误 C4996 ‘fscanf‘: This function or variable may be unsafe.(代码片段

我的C语言学习进阶之旅解决 Visual Studio 2019 报错:错误 C4996 ‘fscanf‘: This function or variable may be unsafe.(代码片段

XSLT:无法将操作数转换为“结果树片段”

将字符串数据从Activity发送到片段[关闭]