具有参数类型的 C# Func 委托
在 C# 中,如何使用 Func
参数来表示具有此签名的方法?
XmlNode createSection(XmlDocument doc, params XmlNode[] childNodes)
我尝试使用 Func
类型的参数,但是,哦,ReSharper/Visual Studio 2008 疯狂地将其突出显示为红色。
更新:好吧,谷歌搜索“c# params func”没有产生任何结果,但是“c# params delegate”引导我这个问题。按照 Jon Skeet 的回答,看起来也许我可以创建一个委托
,比如 Foo
,然后而不是为我的类型为 Func
的方法提供一个参数。 XmlDocument, params XmlNode[], XmlNode>
,我采用 Foo
类型的参数。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
乔恩·斯基特对 href="https://stackoverflow.com/questions/1136470/can-you-use-the-params-keyword-in-a-delegate">这个其他问题引导我尝试以下方法,该方法有效:
Jon Skeet's answer to this other question led me to try the following, which works:
委托声明中不能包含
params
。不过,您可以采用单个数组,它可以满足您的需要:Func
。You can't have
params
in a delegate declaration. You can, however, take a single array, which would work for what you need:Func<XmlDocument, XmlNode[], XmlNode>
.我建议在这种情况下不允许使用“params”。
I suggest 'params' is not allowed in this case.