Search code examples
c#delegatesactionparams-keyword

Can I use params in Action or Func delegates?


When I'm trying to use params in an Action delegate...

private Action<string, params object[]> WriteToLogCallBack;

I received this design time error:

Invalid token 'params' in class, struct, or interface member declaration

Any help!


Solution

  • How about this workaround?

    private Action<string, object[]> writeToLogCallBack;
    public void WriteToLogCallBack(string s, params object[] args)
    {
      if(writeToLogCallBack!=null)
        writeToLogCallBack(s,args);
    }
    

    Or you could define your own delegate type:

    delegate void LogAction(string s, params object[] args);