我有一个这样的“调度图”:
private Dictionary<string, Func<DynamicEntity, DynamicEntity, IEnumerable<DynamicEntity>, string>> _messageProcessing;
这使我可以根据DynamicEntity实例的名称轻松地调度到不同的方法。
为了避免被永远维护该代码的每个人所讨厌,是否有任何方法可以在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/