使用OUT参数返回值VS的递归函数

时间:2013-07-01 03:59:49

标签: c# function recursion parameters out

只是一个简单的问题,

你认为这两者有什么好处:

- A recursive function that returns a value
- A recursive function with an OUT paremeter (which will serve as a return value.)

我尝试了两种方法,但他们也做了同样的事情。

请注意,此功能的主要功能是:

-> accept a String parameter.
-> scan through a list (whick have like 1032 items) and find a match of the string parameter above.
-> then get a specific data from the object that matched the string parameter.

非常感谢您的投入。

3 个答案:

答案 0 :(得分:3)

对我来说,返回一个值总是比out参数更好的选择 在我看来,它更干净,更优雅 看看这个类似的question,以及John双向飞碟的答案。

此外,如果您使用FxCop,则会get a warning for using out parameters

答案 1 :(得分:0)

对我来说,任何一种方法似乎都很好,所以归结为个人偏好。 你基本上可以问一些关于方法的相同问题 - 递归与否。

out param的一个好处是你可以支持多个参数。 但是,有些人可能会说使用返回值更具可读性。

答案 2 :(得分:0)

与您发现的方法非常相似,取决于上下文。有时候,没关系,有些人会把事情变得不那么复杂。

最终,上下文取决于您要解决的问题。有时候递归函数是解决问题与基于循环的算法相比简单得多的方法,反之亦然。

根据你所说的,听起来你可能会更好地使用基于循环的算法,除非你的单词列表存储在某种复杂的树节点结构中。