out キーワードは、次の 2 つのコンテキストで使用します。
- パラメーター修飾子として、値ではなく参照によってメソッドに引数を渡すために使用します。
- インターフェイスとデリゲートの ジェネリック型パラメーター宣言 では、型パラメーターが共変であることを指定するために使用します。
C# 言語リファレンスには、C# 言語の最新リリース バージョンが記載されています。 また、今後の言語リリースのパブリック プレビューの機能に関する初期ドキュメントも含まれています。
このドキュメントでは、言語の最後の 3 つのバージョンまたは現在のパブリック プレビューで最初に導入された機能を特定します。
ヒント
C# で機能が初めて導入された時期を確認するには、 C# 言語バージョン履歴に関する記事を参照してください。
out パラメーター修飾子は、複数のout パラメーターを使用できるため、メソッドが複数の値を返す必要がある場合に特に便利です。 たとえば、
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);
}
out キーワードの使用には、次の制限事項が適用されます。
- 非同期メソッドでは
outパラメーターを使用できません。 - 反復子メソッドで
outパラメーターを使用することはできません。 - プロパティを
outパラメーターとして渡すことはできません。
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET