c# - 在 C# 中从自身内部调用函数

标签 c# recursion

<分区>

这是 JavaScript 中非常常见的技术,但我想确保我可以在 C# 中做到这一点。

我在函数 DoSomething() 中,在执行调用期间,我需要用不同的值调用同一个函数。见下文:

public bool DoSomething(int id)
{
    if(id < 100)
    {
         // Some logic here
         var someValue = id + 50;
         var outcome = DoSomething(someValue);

         // Some more logic here
    }
    else
    {
        // Some other logic here
    }
}

我看不出为什么我不能执行上述操作,但想看看这在 C# 中是否是一种不好的做法。

最佳答案

这个概念被称为 recursion并且不限于 JavaScript。它实际上是一种广为人知的技术,实际上正在取代某些语言(例如 scheme)中的循环。

在 C# 中从自身内部调用函数也是有效的。只需确保您有终止条件,因为您对堆栈有限制。由于每个函数调用都会将另一个项目推送到调用堆栈,因此您最终可能会遇到所谓的堆栈溢出

关于c# - 在 C# 中从自身内部调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46867909/

相关文章:

c# - 如何检查 Botframework 上的对话框堆栈

c# - 存储库应该使用对象还是原语?

java - Java 中的递归处理钻石

python - Django 中的类别递归

javascript - Ramda 基于键匹配的递归合并

java - 递归打印出数组中等于给定总和的所有子集,不会跳转到下一次迭代

c# - Azure Webjob失败退出代码-1073740940

c# - 如何有效地将 100s 到 1000s 的操作记录到数据库

c# - ASP.Net 标识 : Difference between UseOAuthBearerTokens and UseCookieAuthentication?

python - 关于递归的问题