gpt4 book ai didi

C#递归在返回后调用一次方法本身

转载 作者:太空宇宙 更新时间:2023-11-03 22:57:50 25 4
gpt4 key购买 nike

    private static string FindBookEanOrEanOnSplits(string[] splits, int index = 0)
{
string id = "";
if (index < 3)
{
id = Extractor.ExtractBookEanOrEan(splits[index].ToUpper());

if (id == string.Empty)
FindBookEanOrEanOnSplits(splits, index + 1);
}

return id;
}

比如第二次调用后,id不再为空然后跳出返回但是调用了一次(突然返回)这一行 FindBookEanOrEanOnSplits(splits, index + 1) 使 id 为空 而不是没有空值

最佳答案

你为什么要递归地做这个?你可以循环执行:

private static string FindBookEanOrEanOnSplits(string[] splits)
{
string id = "";

for (int i = 0; i < 3; i++)
{
id = Extractor.ExtractBookEanOrEan(splits[index].ToUpper());
if (!string.IsNullOrEmpty(id)) break;
}

return id;
}

递归调用可能会混淆调试。在这种情况下完全没有必要,因为您只是在执行简单的索引操作并调用另一个方法。当您处理本质上自然分层的数据结构或操作并且需要在每个级别维护“状态”时,递归很有用。

关于C#递归在返回后调用一次方法本身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44587914/

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