out (C# Reference)

You can use the out keyword in two contexts:

The out keyword is especially useful when a method needs to return more than one value since more than one out parameter can be used e.g.

    public void Main()
    {
        double radiusValue = 3.92781;
        //Calculate the circumference and area of a circle, returning the results to Main().
        CalculateCircumferenceAndArea(radiusValue, out double circumferenceResult, out var areaResult);
        System.Console.WriteLine($"Circumference of a circle with a radius of {radiusValue} is {circumferenceResult}.");
        System.Console.WriteLine($"Are of a circle with a radius of {radiusValue} is {areaResult}.");
        Console.ReadLine();
    }

    //The calculation worker method.
    public static void CalculateCircumferenceAndArea(double radius, out double circumference, out double area)
    {
        circumference = 2 * Math.PI * radius;
        area = Math.PI * (radius * radius);
    }

The following limitations apply to using the out keyword:

  • out parameters are not allowed in asynchronous methods.
  • out parameters are not allowed in iterator methods.
  • Properties cannot be passed as out parameters.