だから私はC#を初めて使っていて、理解するのが難しいですout
です。ただ機能C#outパラメーターvs返す
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文の代わりにout
を使用する理由がありますか?私はref
が双方向通信を可能にしていることを理解しています。また、関数が変数を使って何かを送信していない限り、私は通常ref
を使用すべきではありません。上に示したように
しかしアウトと返す文の違いは、ありますか?文法的には、どちらかを好む理由がありますか?一つの変数が出て心配して復帰さ
研究 'Dictionary.TryGetValue'と' int.TryParse'及びこれらの例はout' 'の有用性を説明するかどうかを確認します。 –
'out'は、メソッドから無関係な複数の値を返す必要があるときに、ほとんど使用されます。また、COMまたはp/invokeを介してネイティブコードと相互作用するときにポインタをシミュレートするためによく使用されます。 – dlev
C/C++にはポインタがあります。ポインタを関数に渡すと、関数内でポインタを変更することができ、値も呼び出し関数で変更されます。アウトはほとんど同じことをします。 – carny666