out (C# Reference)
You can use the out
keyword in two contexts:
As a parameter modifier, which lets you pass an argument to a method by reference rather than by value.
In generic type parameter declarations for interfaces and delegates, which specifies that a type parameter is covariant.
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.
Collaborate with us on GitHub
The source for this content can be found on GitHub, where you can also create and review issues and pull requests. For more information, see our contributor guide.
Feedback
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for