加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C#输出参数vs返回值

发布时间:2020-12-15 03:47:49 所属栏目:百科 来源:网络整理
导读:所以我是C#的新手,我很难理解.而不是从函数返回一些东西 using System;class ReturnTest{ static double CalculateArea() { double r=5; double area = r * r * Math.PI; return area; } static void Main() { double output = CalculateArea(); Console.Wri
所以我是C#的新手,我很难理解.而不是从函数返回一些东西
using System;
class ReturnTest
{
    static double CalculateArea()
    {
         double r=5;
         double area = r * r * Math.PI;
         return area;
    }

    static void Main()
    {
         double output = CalculateArea();
         Console.WriteLine("The area is {0:0.00}",output);
    } 
 }

与此相比

using System;
 class ReturnTest
 {
     static void CalculateArea(out double r)
     {
         r=5;
         r= r * r * Math.PI;
     }

     static void Main()
     {
         double radius;
         CalculateArea(out radius);
         Console.WriteLine("The area is {0:0.00}",radius );
         Console.ReadLine();
     }
}

第一个是我一般来做的.有没有理由为什么我可能想使用而不是只是一个return语句?我明白ref允许进行双向通信,而且我通常不要使用ref,除非该函数正在使用我发送的变量做某事.

然而,out和return语句之间有区别,如上所示?语法上有理由赞成一个或另一个?

解决方法

对于结果而言,使用out而不是返回的好方法是可以在某些API中看到的Try模式,例如Int32.TryParse(…).在这种模式下,返回值用于表示操作的成功或失败(与异常相反),out参数用于返回实际结果.

Int32.Parse的优点之一是速度快,因为避免了异常.另一个问题已经提出了一些基准:Parsing Performance (If,TryParse,Try-Catch)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读