具有参数类型的 C# Func 委托

发布于 2024-09-04 13:01:59 字数 680 浏览 2 评论 0 原文

在 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 类型的参数。

How, in C#, do I have a Func parameter representing a method with this signature?

XmlNode createSection(XmlDocument doc, params XmlNode[] childNodes)

I tried having a parameter of type Func<XmlDocument, params XmlNode[], XmlNode> but, ooh, ReSharper/Visual Studio 2008 go crazy highlighting that in red.

Update: okay, Googling for 'c# params func' produced no results, but 'c# params delegate' led me to this question. Following Jon Skeet's answer there, it looks like maybe I could create a delegate, say Foo, and then instead of having a parameter to my method of type Func<XmlDocument, params XmlNode[], XmlNode>, I take a parameter of type Foo.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

梦断已成空 2024-09-11 13:01:59

乔恩·斯基特对 href="https://stackoverflow.com/questions/1136470/can-you-use-the-params-keyword-in-a-delegate">这个其他问题引导我尝试以下方法,该方法有效:

protected delegate XmlNode CreateSection(XmlDocument doc,
    params XmlNode[] childNodes);

protected static void createOrUpdateSettingTree(XmlNode rootNode,
    XmlDocument doc, CreateSection createSection) { ... }

Jon Skeet's answer to this other question led me to try the following, which works:

protected delegate XmlNode CreateSection(XmlDocument doc,
    params XmlNode[] childNodes);

protected static void createOrUpdateSettingTree(XmlNode rootNode,
    XmlDocument doc, CreateSection createSection) { ... }
泛泛之交 2024-09-11 13:01:59

委托声明中不能包含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>.

反差帅 2024-09-11 13:01:59

我建议在这种情况下不允许使用“params”。

I suggest 'params' is not allowed in this case.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文