【发布时间】:2017-10-21 20:47:33
【问题描述】:
这是 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# 中是否是一种不好的做法。
【问题讨论】:
-
递归是一种不好的做法吗?但我说使用
var是,除非你不知道类型是什么;) -
这是一个简单的递归,完全正确。
-
@通常递归是一种使代码简洁易懂的有用技术。但是,它的性能较差,并且在非尾调用优化语言中会产生堆栈溢出异常。在递归函数和迭代函数之间进行选择时,请仔细检查您的用例。