gpt4 book ai didi

c# - 这是递归还是迭代?

转载 作者:太空狗 更新时间:2023-10-29 23:58:30 25 4
gpt4 key购买 nike

如果您看到它在底部(内部)foreach 语句中调用方法 FindChildControls,因为它来自 foreach 是否使其递归或迭代?

谢谢!

public static IEnumerable<T> FindChildControls<T>(this ControlCollection controlCollection) where T: class 
{
foreach(Control control in controlCollection)
{
if(control is T)
{
yield return control as T;
}
foreach(T type in control.Controls.FindChildControls<T>())
{
yield return type;
}
}
}

最佳答案

此方法是递归的,因为它在第 9 行调用自身。它还使用迭代(foreach 循环)。它也很懒惰,因为它会产生结果,所以除非调用者循环遍历枚举器,否则什么都不会执行。

关于c# - 这是递归还是迭代?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4402268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com