【问题标题】:How can I add a method as a parameter of a function如何将方法添加为函数的参数
【发布时间】:2020-03-25 17:20:39
【问题描述】:

我尝试将方法设置为参数,但我做不到。 我尝试了大约十种针对不同主题提出的解决方案,但没有奏效,这就是我创建自己的主题的原因

public static void startThread(Method methodname (For exemple Class.test))
        {
            for (int i = 1; i <= Xenoris.threads; i++)
            {
                new Thread(new ThreadStart(methodname)).Start();
            }
        }

如您所见,我尝试在函数中执行 ThreadStart,但为此我需要有一个方法作为参数,但我不能这样做

更准确地说,我想创建自己的库,并且我需要能够将方法作为参数,例如:Class.test

我希望有人可以帮助我,我很抱歉我的英语不好

【问题讨论】:

  • 这能回答你的问题吗? C# Passing Function as Argument
  • 这里的东西没有加起来。您想多次启动相同的 - 不相似但 same 方法?没有不同的论点?没有函数集合?或者这只是一个例子来弄清楚如何用 1 做到这一点?

标签: c# function methods


【解决方案1】:

在这种情况下,ThreadStart 本身就是一个委托,因此您可以将其用作参数类型:

public static void startThread(ThreadStart method)
{
    for (int i = 1; i <= Xenoris.threads; i++)
    {
        new Thread(method).Start();
    }
}

而且可以不带括号直接传入方法名:

startThread(SomeMethod);

注意,你传递的方法必须是不接受参数并返回void的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-13
    • 1970-01-01
    • 2019-09-13
    • 2015-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多