「out」は C# のキーワードで、引数を参照型としてメソッドに渡すために使用されます。 out パラメーターとしてメソッドに渡される変数は、メソッド呼び出しに渡す前に宣言または初期化する必要はありません。呼び出されたメソッドは、コントロールが呼び出されたメソッドを離れる前、および呼び出されたメソッドが呼び出したメソッドに値を返す前に、out パラメータの変数に値を割り当てる必要があります。複数の out パラメーターを 1 つのメソッドに渡すことができ、メソッドは複数の値を返します。
説明付きの構文:
out パラメータを使用してメソッドを呼び出す場合、構文は次のようになります。
Method_name(out data_type variable_name);
ここで、Method_name はメソッドに与えられた任意のユーザー定義名、「out」はメソッドに渡される変数が out パラメーターであることを表現するために使用されるキーワード、data_type は変数の任意のデータ型、variable_name は変数のユーザー定義名。
呼び出されるメソッドの構文は次のとおりです:
access_specifier return_type Method_name(out data_type variable_name);
ここで、access_specifier は、パブリックやプライベートなど、C# でサポートされている 5 つのアクセス指定子のうちの任意のアクセス指定子にすることができます。 return_type は、このメソッドが返すデータのタイプで、その後にメソッド名と「out」パラメータのリストが続きます。
C# では、「out」キーワードは「ref」および「in」キーワードと同様に機能します。 「out」パラメータと「ref」パラメータの違いは、「out」パラメータ変数はメソッドに渡す前に初期化する必要がなく、ユーザーはメソッドの引数リストで「out」パラメータ変数を宣言できることです。これを個別に宣言するのではなく、「out」パラメータのインライン宣言と呼ばれますが、「ref」パラメータ変数はメソッドに渡される前に初期化する必要があります。インラインで宣言された「out」パラメータには、コードの同じブロック内でアクセスできます。
コード:
using System; namespace ConsoleApp4 { public class Program { public static void Main(string[] args) { //inline declaration of 'out' parameter Display(out int num); Console.WriteLine("Value of variable 'num': {0}", num); Console.ReadLine(); } public static void Display(out int a) { //need to assign value a = 10; a += a; } } }
出力:
コード:
using System; namespace ConsoleApp4 { public class Program { public static void Main(string[] args) { string str = "123456"; int num; //if ‘canParse’ is true; the result of conversion will be stored in ‘num’ bool canParse = Int32.TryParse(str, out num); if (canParse) Console.WriteLine(num); else Console.WriteLine("Could not be parsed."); Console.ReadLine(); } } }
出力:
以下は C# Out パラメーターの例です:
複数の「out」パラメータがメソッドに渡され、メソッドが複数の値を返す例。
コード:
using System; namespace ConsoleApp4 { public class Program { public static void Main() { //declaring variables without assigning values float area, perimeter; //passing multiple variables to a method using 'out' keyword Calculate(5, 10, out area, out perimeter); //displaying the result Console.WriteLine("The area of rectangle is: {0}", area); Console.WriteLine("The perimeter of rectangle is: {0}", perimeter); Console.ReadLine(); } //method taking length & breadth & it will return area and perimeter of rectangle public static void Calculate(int length, int breadth, out float area, out float perimeter) { area = length * breadth; perimeter = 2 * (length + breadth); } } }
出力:
「out」パラメータのインライン宣言を示す例。
コード:
using System; namespace ConsoleApp4 { public class Program { public static void Main() { //in-line declaration of variables without assigning values Calculate(out int length, out int breadth, out float area); //displaying the values of length, breadth, and area Console.WriteLine("Length of rectangle: " + length); Console.WriteLine("Breadth of rectangle: " + breadth); Console.WriteLine("Area of rectangle: " + area); Console.ReadLine(); } //method taking 'out' parameters and it returns multiple values public static void Calculate(out int l, out int b, out float a) { l = 30; b = 40; a = l * b; } } }
出力:
C# の「out」パラメータを使用すると、ユーザーはメソッドへの参照によって引数を渡すことができます。 「out」パラメータとして使用される変数は、メソッドに渡す前に初期化する必要はありません。呼び出されたメソッドは、値を返す前に out パラメータに値を割り当てる必要があります。
以上がC# 出力パラメータの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。