示例:获取TreeView的所有Node,保存到List<TreeNode>,封装到通用工具类:

方法一:使用static方法、属性---调用前清空static类型的List

         public static List<TreeNode> allNodes = null;
public static void GetTreeViewAllNodes(TreeNodeCollection Nodes)
{
foreach (TreeNode node in Nodes)
{
allNodes.Add(node);
if (node.ChildNodes.Count > )
{
GetTreeViewAllNodes(node.ChildNodes);
}
}
}
public static List<TreeNode> GetNodes(TreeView tv)
{
GetTreeViewAllNodes(tv.Nodes);
return allNodes;
}
注意:如果使用static类型的List,每次调用该通用工具类之前需要清空List<TreeNode>,否则会出现叠加。在构造函数中清空:
public Tools()
{
allNodes.Clear();
}

方法二、使用内部方法、属性---直接调用

         public List<TreeNode> allNodes = new List<TreeNode>();
public void GetTreeViewAllNodes(TreeNodeCollection Nodes)
{
foreach (TreeNode node in Nodes)
{
allNodes.Add(node);
if (node.ChildNodes.Count > )
{
GetTreeViewAllNodes(node.ChildNodes);
}
}
}
public List<TreeNode> GetNodes(TreeView tv)
{
GetTreeViewAllNodes(tv.Nodes);
return allNodes;
}

疑问:能不能使用一个方法既可以实现循环遍历,又可以获得返回值???

循环递归+返回值(TreeView示例)的更多相关文章

  1. [Python] 递归返回值 为 None 的问题

    递归返回值 为 None 的问题 解决办法: 在递归调用下一个 递归 函数前面,一定要加上 return,否则就会返回 None 如红色 所处的return: def getAllCityUrl(ur ...

  2. python中函数的参数和返回值

    目录 函数 目标 01. 函数参数和返回值的作用 1.1 无参数,无返回值 1.2 无参数,有返回值 1.3 有参数,无返回值 1.4 有参数,有返回值 02. 函数的返回值 进阶 示例 -- 温度和 ...

  3. 工作随笔——Java调用Groovy类的方法、传递参数和获取返回值

    接触Groovy也快一年了,一直在尝试怎么将Groovy引用到日常工作中来.最近在做一个功能的时候,花了点时间重新看了下Java怎么调用Groovy的方法.传递参数和获取返回值. 示例Groovy代码 ...

  4. Python函数01/函数的初识/函数的定义/函数调用/函数的返回值/函数的参数

    Python函数01/函数的初识/函数的定义/函数调用/函数的返回值/函数的参数 内容大纲 1.函数的初识 2.函数的定义 3.函数的调用 4.函数的返回值 5.函数的参数 1.函数初识 # def ...

  5. Java基础00-形参和返回值22

    1. 形参和返回值 1.1 类名作为形参和返回值 1.2 抽象类名作为形参和返回值 代码示例: 方法的形参是抽象类名 抽象动物类:定义了一个抽象的eat方法 动物的操作类:创建一个useAnimal方 ...

  6. Python第七天 函数 函数参数 函数里的变量 函数返回值 多类型传值 函数递归调用 匿名函数 内置函数

    Python第七天   函数  函数参数   函数里的变量   函数返回值  多类型传值     函数递归调用   匿名函数   内置函数 目录 Pycharm使用技巧(转载) Python第一天   ...

  7. 第10天:apply和call、bind、函数作为参数、返回值使用、闭包、递归的样例

    apply和call apply和call都可以改变this的指向 函数的调用,改变this的指向 函数名字.apply(对象,[参数1,参数2,.....]) 方法名字.apply(对象,[参数1, ...

  8. python学习——函数返回值及递归

    返回值 return语句是从python 函数返回一个值,在讲到定义函数的时候有讲过,每个函数都要有一个返回值.Python中的return语句有什么作用,今天小编就依目前所了解的讲解一下.pytho ...

  9. getchar()函数的返回值赋给char型,用if(ch=getchar() != EOF)测试,输入ctrl+z同样可以结束循环的分析

    2013-07-18 21:35:58 getchar()函数的返回值赋给char型,用if(ch=getchar() != EOF)测试,输入ctrl+z同样可以结束循环的分析. char是字符型数 ...

随机推荐

  1. jfreechart折线图 demo

    public class ChartUtil { public static ChartUtil chartUtil; private RoomViewsDataService roomViewsDa ...

  2. warning: push.default is unset; its implicit value is changing in Git 2.0 from 'matching' to 'simple'.

    'matching'参数是 git 1.x 的默认行为,其意是如果你执行 git push 但没有指定分支,它将 push 所有你本地的分支到远程仓库中对应匹配的分支. 而 Git 2.x 默认的是 ...

  3. Carthage:去中心化的Cocoa依赖管理器

    Cocoa的依赖管理器,我们已经有了CocoaPods,非常好用,那么为什么还要创建这样一个项目呢?本文翻译自Carthage的Github的README.md,带大家来了解一下这个工具有何不同之处. ...

  4. 使用CSDN CODE来存放OPENSTACK位于GITHUB上的源代码

    use CSDN CODE to pull openstack codes 2014-11-20 Author:Hyphen 问题 直接从GITHUB上获代替码,常常是没保障,特别是用DEVSTACK ...

  5. Selenium+C#自动化脚本开发学习

    1:Selenium中对浏览器的操作 首先生成一个Web对象 IWebDriver driver = new FirefoxDriver(); //打开指定的URL地址 driver.Navigate ...

  6. 计算点与x轴正半轴夹角atan2(double y,double x),返回弧度制(-PI,PI]

    精度比acos , asin 什么的高些. Parameters y Value representing the proportion of the y-coordinate. x Value re ...

  7. c/c++一些小知识点(特此总结)

    ---恢复内容开始--- ---恢复内容结束---

  8. 【HTML5开发系列】DOM及其相关

    对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口.DOM把Javascript和HTML文档的结构和内容连接起来,通过DOM可以控 ...

  9. python基础7 ---python函数

    python基础知识 一.闭包函数 1.闭包函数的定义:在一个内部函数中,在对外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包. 2.闭包函数的特点:自带作用域和延迟计算 补 ...

  10. ubuntu13.04中把ibus中的中文拼音输入设为默认

    全新的ubuntu ,先选择 下载服务器 首选项->软件和更新 选择 最佳服务器 准备工作:卸载Ubuntu默认的ibus输入法: sudo apt-get remove ibus 然后添加Fc ...