【发布时间】:2010-11-13 06:38:36
【问题描述】:
我不明白什么时候应该使用输出参数,如果我需要返回多个类型,我个人将结果包装在一个新类型中,我发现使用起来比 out 容易得多。
我见过这样的方法,
public void Do(int arg1, int arg2, out int result)
在任何情况下这实际上是有意义的吗?
TryParse 怎么样,为什么不返回 ParseResult 类型?还是在较新的框架中返回可以为空的类型?
【问题讨论】:
-
如果您不喜欢 TryParse,可以编写一个包装器。
-
顺便说一句,还有一个 Parse 方法,它没有输出参数,只是返回一个值。如果字符串不能转换为类型,则抛出异常。
-
在使用单个 out 参数时返回类型为 void 没有意义,不。但是,请参阅一些有用的答案。
-
连微软自己都建议不要使用
out参数。 msdn.microsoft.com/en-us/library/ms182131.aspx 归结为,out是一种返回多个值而不仅仅是一个值的方法。但是,函数返回一个结构或类,其中包含您需要返回的所有内容,这样会更简洁、更模块化。