为什么.Net框架指南建议您不要使用ref/out参数?

Tra*_*ony 9 .net c# parameters function

显然,他们"令人困惑".那是认真的原因吗?你能想到其他人吗?

Jon*_*eet 13

您是否看到有多少开发人员不了解ref/out?

我在他们真正需要的地方使用它们,但不是这样.它们通常只有在您想要有效地返回两个或更多值时才有用 - 在这种情况下,至少值得考虑是否有一种方法可以使该方法只做一件事.有时使用ref/out 最合适的方法 - 各种TryParse方法等.

  • 为什么你首先得到一个256字节的结构? (2认同)

Skl*_*vvz 5

在我看来,它们被认为是代码气味,因为通常有一个更好的选择:返回一个对象.

如果您注意到,在.NET库中它们仅用于某些特殊情况,即类似于tryparse的场景,其中:

  • 返回一个类意味着装箱值类型
  • 该方法的合同要求它快,因此装箱/拆箱不是一个可行的选择.