【问题标题】:Recursive function with return value VS using OUT parameter使用 OUT 参数返回值 VS 的递归函数
【发布时间】:2013-06-28 03:32:53
【问题描述】:

只是一个简单的问题,

你认为两者哪个更好:

- 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.

您的意见将不胜感激。

【问题讨论】:

标签: c# function recursion parameters out


【解决方案1】:

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

另外,如果您使用FxCop,您将使用get a warning for using out parameters

【讨论】:

    【解决方案2】:

    对我来说,这两种方法似乎都不错,所以这取决于个人喜好。 您基本上可以就一般方法提出相同的问题 - 是否递归。

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

    【讨论】:

      【解决方案3】:

      与您发现的一样,哪种方法取决于上下文。有时,这无关紧要,而在其他情况下,它会让事情变得不那么复杂。

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

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

      【讨论】:

        猜你喜欢
        • 2011-02-20
        • 2017-03-19
        • 2020-10-10
        • 2021-06-11
        • 2012-03-11
        • 2017-05-14
        • 2014-07-13
        • 2022-11-05
        相关资源
        最近更新 更多