C # out parametry vs zwroty
Więc jestem nowy w C # i mam trudności ze zrozumieniemout
. W przeciwieństwie do zwracania czegoś z funkcji
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);
}
}
porównaj z tym
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();
}
}
Pierwszy to sposób, w jaki bym to zrobił. Czy jest powód, dla którego mogę chcieć skorzystaćout
zamiast zwykłego zwrotu? Rozumiem, żeref
pozwala na dwukierunkową komunikację i generalnie nie powinienem używaćref
chyba że funkcja robi coś ze zmienną, którą wysyłam.
Czy jednak istnieje różnica między instrukcjami out i return, jak pokazano powyżej? Czy pod względem składni istnieje powód do faworyzowania jednego lub drugiego?