c# - 您可以命名 Func<T> 类型的参数吗?

标签 c# anonymous-function

我有一个这样定义的“调度图”:

private Dictionary<string, Func<DynamicEntity, DynamicEntity, IEnumerable<DynamicEntity>, string>> _messageProcessing;

这使我可以根据 DynamicEntity 实例的名称轻松分派(dispatch)到不同的方法。

为了避免被所有维护代码的人永远讨厌,有没有什么方法可以命名 Func 中的参数以提供一些 DynamicEntity 是哪个的线索?

最佳答案

您不能使用内置的 Func 类型来完成它,但是创建您自己的自定义委托(delegate)类型并以类似的方式使用它很容易:

_messageProcessing.Add("input", (x, y, z) => "output");
_messageProcessing.Add("another", (x, y, z) => "example");

// ...

delegate string DispatchFunc(DynamicEntity first, DynamicEntity second,
                             IEnumerable<DynamicEntity> collection);

Dictionary<string, DispatchFunc> _messageProcessing;

关于c# - 您可以命名 Func<T> 类型的参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6262646/

相关文章:

c# - DataGridViewComboBoxCell 值无效 #2

c# - 与应用程序一起存储数据的最快方法是什么?

C# VS2015 Express : The primary reference . .. 无法解析,因为它间接依赖于 .NET Framework 程序集

javascript - 如何将 javascript 变量设置为内联函数的返回值?

r - 在R中使用带有多个参数的匿名函数

lambda - 很多函数还是很多 Lambda?

C# 使用 SqlCommand.Parameters 更新表

c# - C#中的迭代加深搜索

javascript - 数组中的每个元素同时递增,而实际上只应该递增一个元素

函数内的javascript函数不起作用?