ホームページ  >  記事  >  バックエンド開発  >  C# 出力パラメータ

C# 出力パラメータ

WBOY
WBOYオリジナル
2024-09-03 15:29:34786ブラウズ

「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」パラメーターはどのように機能しますか?

C# では、「out」キーワードは「ref」および「in」キーワードと同様に機能します。 「out」パラメータと「ref」パラメータの違いは、「out」パラメータ変数はメソッドに渡す前に初期化する必要がなく、ユーザーはメソッドの引数リストで「out」パラメータ変数を宣言できることです。これを個別に宣言するのではなく、「out」パラメータのインライン宣言と呼ばれますが、「ref」パラメータ変数はメソッドに渡される前に初期化する必要があります。インラインで宣言された「out」パラメータには、コードの同じブロック内でアクセスできます。

例 #1

コード:

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;
}
}
}

出力:

C# 出力パラメータ

  • 「out」キーワードと「in」キーワードの違いは、「out」パラメータ値は呼び出されたメソッド内で変更できるのに対し、「in」パラメータ値は呼び出されたメソッド内では変更できないことです。
  • メソッドには、Display(out x, out y);
  • のような複数の「out」パラメータを含めることができます。
  • 「out」パラメータを操作するには、ユーザーはメソッド定義と呼び出しメソッドで「out」キーワードを明示的に使用する必要があります。同時に、メソッド定義と呼び出しの「out」パラメータに指定される名前が同じである必要はありません。
  • 「out」パラメータは参照によってメソッドに渡されるため、メモリ内に新しい格納場所は作成されず、メソッド呼び出しの変数引数が占有する同じ格納場所が使用されます。 「out」パラメータを使用するメソッドは複数の値を返すことができるため、ユーザーは呼び出されたメソッドから複数の処理された値を取得するのに役立ちます。ただし、メソッドが呼び出し側メソッドに値を返す前に、メソッド内の「out」パラメータにいくつかの値を割り当てる必要があります。
  • 「async」修飾子を使用して定義する非同期メソッドで「out」パラメータを使用できないのと同様に、すべてのタイプのメソッドで「out」パラメータを使用することはできません。また、「iterator」メソッドで「out」パラメータを使用することもできません。 「イールドリターン」または「イールドブレーク」ステートメントで構成されます。プロパティは変数ではないため、プロパティを「出力」パラメータとしてメソッドに渡すことはできません。
  • 「out」パラメーターは、型パラメーターが共変であることを示すジェネリック型を使用して定義できます。これに加えて、C# のさまざまなデータ型の TryParse() メソッドで「out」パラメーターが使用されます。 TryParse() メソッドは、成功または失敗を指定するブール値を返し、成功した場合、結果は「out」パラメータによって与えられます。

例 #2

コード:

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# 出力パラメータ

C# Out パラメータの例

以下は C# Out パラメーターの例です:

例 #1

複数の「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);
}
}
}

出力:

C# 出力パラメータ

例 #2

「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# 出力パラメータ

結論

C# の「out」パラメータを使用すると、ユーザーはメソッドへの参照によって引数を渡すことができます。 「out」パラメータとして使用される変数は、メソッドに渡す前に初期化する必要はありません。呼び出されたメソッドは、値を返す前に out パラメータに値を割り当てる必要があります。

以上がC# 出力パラメータの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。