C # Func делегат с типом params - PullRequest
11 голосов
/ 08 июня 2010

Каким образом в C # у меня есть параметр Func, представляющий метод с этой сигнатурой?

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

Я пытался иметь параметр типа Func<XmlDocument, params XmlNode[], XmlNode>, но, ох, ReSharper / Visual Studio2008 сходит с ума, выделяя это красным.

Обновление: хорошо, поиск в Google для 'c # params func' не дал результатов, но 'делегат c # params' привел меня к этому вопросу .После ответа Джона Скита, похоже, что я мог бы создать delegate, скажем Foo, а затем вместо параметра моего метода типа Func<XmlDocument, params XmlNode[], XmlNode> я взял бы параметр типа Foo.

Ответы [ 3 ]

11 голосов
/ 08 июня 2010

ответ Джона Скита на этот другой вопрос привел меня к попытке попробовать следующее:

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

protected static void createOrUpdateSettingTree(XmlNode rootNode,
    XmlDocument doc, CreateSection createSection) { ... }
5 голосов
/ 08 июня 2010

Вы не можете иметь params в декларации делегата. Однако вы можете взять один массив, который будет работать для того, что вам нужно: Func<XmlDocument, XmlNode[], XmlNode>.

0 голосов
/ 08 июня 2010

Я полагаю, что 'params' в этом случае не разрешен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...