Dela via


out (C#-referens)

Du kan använda nyckelordet out i två kontexter:

  • Som parametermodifierare kan du skicka ett argument till en metod med referens i stället för efter värde.

  • I allmänna typparameterdeklarationer för gränssnitt och ombud, som anger att en typparameter är covariant.

Nyckelordet out är särskilt användbart när en metod behöver returnera mer än ett värde eftersom mer än en out parameter kan användas, t.ex.

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

Följande begränsningar gäller för att använda nyckelordet out :

  • out parametrar tillåts inte i asynkrona metoder.
  • out parametrar tillåts inte i iteratormetoder.
  • Det går inte att skicka egenskaper som out parametrar.