C # out parâmetros vs retornos

Então eu sou novo em C # e estou tendo dificuldade em entenderout. Ao contrário de apenas retornar algo de uma função

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);
    } 
 }

comparar com isso

 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();
     }
}

O primeiro é como eu geralmente faria isso. Existe uma razão pela qual eu possa querer usarout em vez de apenas uma declaração de retorno? Eu entendi aquiloref permite comunicação de 2 vias, e que eu geralmente não deveria usarref a menos que a função esteja fazendo algo com a variável que estou enviando.

No entanto, há uma diferença entre as declarações de saída e de retorno, como mostrado acima? Sintaxe existe uma razão para favorecer um ou outro?

questionAnswers(5)

yourAnswerToTheQuestion