首页 > 解决方案 > 将参数传递给方法并分配给 Func 类型

问题描述

我目前有一个类似的方法

 public static bool test(string str);

我想将此方法分配给这种类型

 Func<bool> callback

我正在尝试这样做(这是不正确的)

callback = test("Str");

以上是不正确的,因为我正在调用方法的 C# 事物。如何告诉它使用参数 Str 调用该方法?在 C++ 中,我们可以做到这一点

std::function<...,..,"str">

我们如何在 C# 中做类似的事情?

标签: c#callbackfunc

解决方案


如果您的目标是始终使用相同的字符串参数(而不是每次都使用不同的参数)调用回调,您可以将其声明为:

Func<bool> callback = () => test("Str");
var result = callback();

但是,如果您打算每次都传递不同的字符串值,那么您需要一个Func<string, bool>

Func<string, bool> callback = s => test(s);
var result = callback("Str");

推荐阅读