c# - 如何转换函数功能
问题描述
我有Func<object, bool> myDelegate
一些像这样的变量:
object test = new object();
如何传递myDelegate
给期望Func<bool>
参数的方法:
class FuncT
{
static void Main(string[] args)
{
object test = new object();
Func<object, bool> myDelegate = (x) => x != null;
// how to pass myDelegate to methodName so that it evaluates against 'test'?
methodName(myDelegate);
}
static void methodName(Func<bool> criteria)
{
Console.Out.WriteLine("Criteria: {0}", criteria());
}
}
作为替代方案,我可以将方法更改为具有签名void methodName(object a, Func<object, bool> criteria)
并调用它methodName (test, myDelegate)
,但为什么呢?我已经有test
对象类型的变量,所以我想告诉myDelegate
在方法中使用它,这样 methodName 只会得到一个没有参数的委托。
解决方案
推荐阅读
- python - How do I get "new" behavior in python?
- python - 如何更正有关单独 Python 文件的“ModuleNotFoundError”?
- service-worker - 工作箱:`ignoreUrlParametersMatching` 似乎不起作用
- python - 在 Python pyglet 中按下按钮时做一些事情
- java - Java超类变量在子类之外访问?
- node.js - 如何解析 lambda 中的事件参数?
- python - 在 pandas DataFrame 中的列表上使用 numpy.where(或 numpy.select)
- reactjs - 我的状态被填满又变空了?React-Redux
- java - 在 Java 中将 JSON 参数作为 livy 参数发送
- google-apps-script - 如何在应用脚本中获取当前用户名(邮件 ID)