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

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/

10-11 12:24