0
我有一個函數可以加載一個Node的子節點。它在內部調用一個WCF異步服務來加載。簽名如下。樹加載器擴展函數內的異步函數調用
public void AddChildElements(Node parentElement,
Action<IEnumerable<Node>> callback)
{
}
這可以用於像
_nodeBuilder.AddChildElements(parentElement, (elements) =>
{
//do something with elements
});
現在我想編寫一個函數來擴展基於某些條件下的層次結構。所以我寫這樣的
public static T LoadHierarchyUntilItemFound<T>(
this IEnumerable<T> sequence, Func<T, List<T>> loadaction,
Func<T, string> searchstring)
{
//...
}
的loadaction參數擴展功能預計爲node.The使用加載功能如下
Elements.LoadHierarchyUntilItemFound(LoadChildren,
"root.UK.England.London");
的問題是我如何寫一個加載函數?
private List<Node> LoadChildren(Node parent)
{
// _nodeBuilder.AddChildElements(parent, here it expects a callback
//which gives the result, how to use this?);
}
總之,麻煩在於如何使用回調函數來返回包裝函數的結果?
+1,真正體會到了答案。謝謝。 – Jimmy