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?

questionAnswers(5)

yourAnswerToTheQuestion