是否可以声明没有参数的泛型委托?

Exi*_*tos 4 c# generics delegates func

我有...

Func<string> del2 = new Func<string>(MyMethod);
Run Code Online (Sandbox Code Playgroud)

我真的很想..

Func<> del2 = new Func<>(MyMethod);
Run Code Online (Sandbox Code Playgroud)

所以回调方法的返回类型是void.这可能使用泛型类型func吗?

svi*_*ick 15

Func代表的系列是该采取零个或多个参数和返回值的方法.对于采用零个或多个参数的方法,不使用其中一个Action委托返回值.如果方法没有参数,请使用以下非泛型版本Action:

Action del = MyMethod;
Run Code Online (Sandbox Code Playgroud)


dkn*_*ack 7

是的,返回void(无值)的函数是a Action

public Test()
{
    // first approach
    Action firstApproach = delegate
    {
        // do your stuff
    };
    firstApproach();

    //second approach 
    Action secondApproach = MyMethod;
    secondApproach();
}

void MyMethod()
{
    // do your stuff
}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助

  • 您的代码无法编译.你不能只留下类似的类型参数.为什么你的代码中同时有'Action`和`Func`? (2认同)