将带有字符串参数的 Action 传递给没有它的方法

Pass an Action with string parameter into method without it

我想将一个动作传递给一个方法,然后使用我到达那里的参数 filePath 调用它。 如果我像下面那样做,该方法将使用我在 ExportExecute 参数中传递的参数调用,而不是使用 filePath

ExportExecute(m => this.Method(null), "example")

导致

action.Invoke(null);

但我想要的是

action.Invoke(filePath);

我的代码:

 private void ExportExecute(Action<string> action, string fileName)
        {
            var filePath = this.ExportDialog(fileName);

        try
        {
            action.Invoke(filePath);
...

这不起作用,该操作是用 null 调用的。

通过正确的语法解决了我的问题...

电话:

this.ExportExecute(this.MyMethod, "Example")

当您调用this.Method(null)时,提供给MyMethod的参数是null。但是您真正想要的是提供 x:

的值
this.ExportExecute(x => this.MyMethod(x), "Example")

或更简单:

this.ExportExecute(this.MyMethod, "Example")