繁体   English   中英

多次修改C#Out参数

[英]Modifying C# Out parameter more than once

当您的函数具有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;
}

即使这两个都达到相同的结果,哪个更好? 其中任何一个都有缺点吗?

实际上,没关系,您只需要在此方法中分配变量即可。 但是,最好避免使用输出或参考参数

使用定义出参数或引用参数的成员,要求开发人员理解指针,值类型和引用类型之间的细微差异以及出参数和引用参数之间的初始化差异。

对我来说,第二个是开销

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2025 STACKOOM.COM