将带有字符串参数的 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")
我想将一个动作传递给一个方法,然后使用我到达那里的参数 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")