我有一个这样定义的“调度图”:
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/