Parámetros C # out vs devoluciones

Así que soy nuevo en C # y tengo dificultades para entenderout. A diferencia de simplemente devolver algo de una función

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

compara con esto

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

El primero es cómo lo haría generalmente. ¿Hay alguna razón por la que quiera usar?out en lugar de sólo una declaración de retorno? Entiendo queref permite la comunicación bidireccional, y que generalmente no debería usarref a menos que la función esté haciendo algo con la variable que la estoy enviando.

Sin embargo, ¿hay alguna diferencia entre las declaraciones de devolución y de devolución, como se muestra arriba? Sintaxis: ¿hay alguna razón para favorecer a uno u otro?

Respuestas a la pregunta(5)

Su respuesta a la pregunta