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
:
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"