什么时候应该使用`out`参数而不是返回复杂类型?

Ram*_*esh 6 .net c#

我们什么时候应该out在C#中使用参数?

例如

bool TryGetValue(out object value);
Run Code Online (Sandbox Code Playgroud)

class ReturnType
{
      public bool Found {get;set;}
      public object Value {get;set;}
}

ReturnType TryGetValue();
Run Code Online (Sandbox Code Playgroud)

除了减少代码行数之外,何时应该使用一个out参数以及什么时候应该返回它作为返回类型?

Mar*_*son 4

Out 还可用于可能失败的操作(通常出现在启动 Try* 的方法中)。

例如,TryParse 将返回一个布尔值,指示成功/失败,同时使用输出值作为结果。这避免了抛出异常。