首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >你能在Func<T>类型中命名参数吗?

你能在Func<T>类型中命名参数吗?
EN

Stack Overflow用户
提问于 2011-06-07 16:38:50
回答 4查看 11.6K关注 0票数 26

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

代码语言:javascript
运行
复制
private Dictionary<string, Func<DynamicEntity, DynamicEntity, IEnumerable<DynamicEntity>, string>> _messageProcessing;

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

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-06-07 16:56:23

你不能用内置的Func类型做到这一点,但是创建你自己的自定义委托类型并以类似的方式使用它已经很容易了:

代码语言:javascript
运行
复制
_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;
票数 35
EN

Stack Overflow用户

发布于 2018-02-01 12:43:39

在C# 7中,您可以通过以下方式使用命名元组来实现它:

代码语言:javascript
运行
复制
Func<(string firstName, string lastName), string> f = (data) => data.firstName + data.lastName;
f(("Foo", "Bar"));
票数 31
EN

Stack Overflow用户

发布于 2011-06-07 16:46:38

你可以创建一个包含你的‘参数’的类,并将它提供给函数?这样你就可以给它们起任何你想要的名字了。

据我所知,你不能在行内给它们命名。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6262646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档