gpt4 book ai didi

c# - 如何退出具有返回类型的 C# 递归方法

转载 作者:太空狗 更新时间:2023-10-30 00:03:43 27 4
gpt4 key购买 nike

我的代码如下,

public object GetObjectValue(object obj, int condition)
{
if(condition > 10)
{
//exit from method
// return; gives compiler error.
}
else
{
GetObjectValue(obj,condition); // like this i need to use recursive call.
//Do stuffs
}
}

如何退出这个方法。帮助我。

最佳答案

几点:

  1. 无论哪种情况,您都需要返回一些东西。即使您在 if(condition > 10)返回 null,下一个编译错误也会提示您需要在每个路径上返回一个值(实际上,这是相同的编译错误)
  2. GetObjectValue(obj,condition); 可能会导致无限递归 - 您一遍又一遍地使用相同的值调用它。
  3. 您不能在 return 语句之后“做事”——它标志着已执行代码的结束(除非您有一个 finally block ,但那是另一个主题)。如果您不想返回那个值也很好,但您可能想以某种方式使用它:object returnedValue = GetObjectValue(obj, condition);

您可能正在寻找类似的东西:

public object GetObjectValue(object obj, int condition)
{
if(condition > 10)
{
//exit from method
return null;
}
else
{
IChild current = (IChild)obj
//Do stuffs HERE
return GetObjectValue(current.Parent, condition + 1); recursive call.
}
}

关于c# - 如何退出具有返回类型的 C# 递归方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5973604/

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