Делегат C# Func с типом params
как в C#, у меня есть Func
параметр, представляющий метод с этой сигнатурой?
XmlNode createSection(XmlDocument doc, params XmlNode[] childNodes)
Я попытался иметь параметр типа Func<XmlDocument, params XmlNode[], XmlNode>
но, ох, ReSharper / Visual Studio 2008 сходят с ума, выделяя это красным цветом.
обновление: хорошо, поиск в гугле для "C# params func" не дал никаких результатов, но "делегат c# params" привел меня к этот вопрос. После ответа Джона Скита там, похоже, я мог бы создать delegate
, скажи Foo
, а затем вместо того, чтобы иметь параметр для моего метода типа Func<XmlDocument, params XmlNode[], XmlNode>
, Я беру параметр типа Foo
.
3 ответов
ответ Джона Скита to это другой вопрос привел меня попробовать следующее, что работает:
protected delegate XmlNode CreateSection(XmlDocument doc,
params XmlNode[] childNodes);
protected static void createOrUpdateSettingTree(XmlNode rootNode,
XmlDocument doc, CreateSection createSection) { ... }
вы не можете иметь params
в объявлении делегата. Однако вы можете взять один массив, который будет работать для того, что вам нужно: Func<XmlDocument, XmlNode[], XmlNode>
.