Action<比;对象作为函数的参数并使用它

本文关键字:参数 函数 对象 Action | 更新日期: 2023-09-27 18:06:29

我有这个函数作为遍历我的treeview的解决方案:

protected void PerformActionOnNodesRecursive(TreeViewNodeCollection nodes, Action<TreeViewNode> action)
{
    foreach (TreeViewNode node in nodes)
    {
        action(node);
        if (node.Nodes.Count > 0)
            PerformActionOnNodesRecursive(node.Nodes, action);
    }
}

但我不明白的是我如何实现我的操作或每个节点所需的操作。

有谁能告诉我如何使用这个动作对象和定义一个自定义动作?

Action<比;对象作为函数的参数并使用它

您可以这样调用Action:

PerformActionOnNodesRecursive(node.Nodes, (node) => node.SomeProperty = "123");

或:

PerformActionOnNodesRecursive(node.Nodes, (node) => 
    {
        // you can place multiple statements here.
    });

或:

PerformActionOnNodesRecursive(node.Nodes, (node) => CallSomeOtherMethod(node));

关于lambda表达式的一些有用信息可以在MSDN上找到

您可以创建您的Action如下:

PerformActionOnNodedRecursive(node, new Action(t => t.Text = "Test"));

现在每个子节点和节点本身都会收到文本"Test"