在SQL和C#中,我从来都不喜欢输出参数.我从未在VB6中传递参数ByRef.关于计算副作用以完成某些事情的事情只会困扰我.
我知道它们是一种无法从函数返回多个结果的方法,但SQL中的行集或C#和VB中的复杂数据类型也同样适用,并且对我来说似乎更自我记录.
我的想法有什么问题,还是来自权威来源的资源支持我?你个人对此有何看法以及为什么?对于想要设计输出参数可能会说服他们使用不同结构的同事,我能说些什么呢?
编辑:有趣的转 - 我问这个问题的输出参数是用来代替返回值.当返回值为"ERROR"时,调用者应该将其作为例外处理.我这样做但对这个想法并不满意.一位同事没有被告知有必要处理这种情况,因此,由于程序无声地失败,大量资金丢失了!
Bri*_*sio 28
输出参数可能是代码气味,表明您的方法做得太多.如果您需要返回多个值,则该方法可能不止一件事.如果数据紧密相关,那么它可能会从包含两个值的类中受益.
当然,这并非总是如此,但我发现通常就是这种情况.
换句话说,我认为你应该避免它们.
And*_*ven 20
他们有自己的位置.Int32.TryParse方法是有效使用out参数的一个很好的例子.
bool result = Int32.TryParse(value, out number);
if (result)
{
Console.WriteLine("Converted '{0}' to {1}.", value, number);
}
Run Code Online (Sandbox Code Playgroud)