多次修改C#Out参数

时间:2019-05-07 12:06:44

标签: c# out

当您有一个带有out参数的函数时,最佳做法是在函数内部创建一个新变量,并在函数末尾为其分配out参数?或在开头给out参数一个空/默认值,然后在整个函数中进行修改。

关于这些编码样式/实践之一为何更好使用,我正在尝试提出一些推理。

选项1:仅使用out参数。

public bool SomeFunc(out string outStr)
{
   outStr = "";

   if (errorCond)
      return false;

   outStr += "foo";
   outStr += "bar";

   return true;
}

选项2:使用临时变量。

public bool SomeFunc1(out string outStr)
{
   string tempStr = "";
   outStr = "";      // To prevent 'The out parameter must be set' error on return false line.

   if (errorCond)
      return false;

   tempString += "foo";
   tempString += "bar";

   outStr = tempStr;
   return true;
}

尽管这两个都达到了相同的结果,这是更可取的吗?其中任何一个都有缺点吗?

1 个答案:

答案 0 :(得分:1)

实际上,没关系,您只需要在此方法中分配变量即可。 但是,最好使用to avoid using output or reference parameters

  

与定义出或引用参数的成员一起工作需要   开发人员理解指针之间的细微差异   值类型和引用类型,以及初始化差异   在out和参考参数之间。

对我来说,第二个在头顶上

在方法开始时分配一个默认值,然后根据需要更改该值。

查看.net源代码中的示例,例如int.TryParseEnum.TryParse