C#输出参数vs返回值

前端之家收集整理的这篇文章主要介绍了C#输出参数vs返回值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以我是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)

猜你在找的C#相关文章