Fra*_*gio 9 c# return reference out
所以我是C#的新手,我很难理解out.而不是仅仅从函数返回一些东西
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);
}
}
Run Code Online (Sandbox Code Playgroud)
与此相比
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();
}
}
Run Code Online (Sandbox Code Playgroud)
第一个是我一般会这样做的.我有可能想要使用out而不仅仅是返回语句吗?我理解ref允许2路通信,并且我通常不应该使用,ref除非函数正在对我发送它的变量做一些事情.
但是out和return语句之间有区别,如上所示?语法是否有理由支持其中一个?
Tud*_*dor 15
例如,您可以在某些API中看到的模式很好地用于out代替return结果.在此模式中,返回值用于表示操作的成功或失败(与异常相反),并且该参数用于返回实际结果.TryInt32.TryParse(...)out
与Int32.Parse速度相关的优点之一是避免了异常.在另一个问题中提出了一些基准测试:解析性能(If,TryParse,Try-Catch)
的out关键字主要用于当你想从一个方法返回多于一个值,而无需在包装的对象的值.
一个示例是该Int32.TryParse方法,它具有返回值(表示尝试成功的布尔值)和out在解析成功时获取值的参数.
该方法可以返回包含布尔值和整数的对象,但是需要在堆上创建对象,从而降低了方法的性能.
| 归档时间: |
|
| 查看次数: |
7399 次 |
| 最近记录: |