An out parameter lets a method return an extra value alongside a success flag.

Out Parameters

OutParameters.cs
using System;

class Program
{
    static bool TryDouble(int input, out int doubled)
    {
        if (input < 0)
        {
            doubled = 0;
            return false;
        }

        doubled = input * 2;
        return true;
    }

    static void Main()
    {
        int input = ;
        bool ok = TryDouble(input, out int doubled);
        string status = ok ? "ok" : "invalid";

        Console.WriteLine($"input={input}");
        Console.WriteLine($"status={status}");
        Console.WriteLine($"doubled={doubled}");
    }
}
using System;

class Program
{
    static bool TryDouble(int input, out int doubled)
    {
        if (input < 0)
        {
            doubled = 0;
            return false;
        }

        doubled = input * 2;
        return true;
    }

    static void Main()
    {
        int input = ;
        bool ok = TryDouble(input, out int doubled);
        string status = ok ? "ok" : "invalid";

        Console.WriteLine($"input={input}");
        Console.WriteLine($"status={status}");
        Console.WriteLine($"doubled={doubled}");
    }
}
using System;

class Program
{
    static bool TryDouble(int input, out int doubled)
    {
        if (input < 0)
        {
            doubled = 0;
            return false;
        }

        doubled = input * 2;
        return true;
    }

    static void Main()
    {
        int input = ;
        bool ok = TryDouble(input, out int doubled);
        string status = ok ? "ok" : "invalid";

        Console.WriteLine($"input={input}");
        Console.WriteLine($"status={status}");
        Console.WriteLine($"doubled={doubled}");
    }
}
out parameter An out parameter is assigned inside the method before the method returns.