目次
1. はじめに
C# では、パラメータの受け渡しに ref キーワードと out キーワードが使用されます。これらを使用すると、メソッド内でパラメータを変更でき、変更された値が呼び出し側メソッドに戻されます。ref キーワードは、参照型のパラメータを渡すために使用されます。ref キーワードを使用してパラメーターを渡す場合、メソッド内のパラメーターを変更すると、呼び出し側メソッドの元の変数に影響します。out キーワードは主に値型のパラメータを渡すために使用され、メソッド内でパラメータを割り当てる必要があります。ref とは異なり、out キーワードを使用してパラメーターを渡す場合、メソッドを呼び出す前にパラメーターを初期化する必要はありません。
2. ref キーワード
ケース
namespace RefAndOut
{
internal class Program
{
static void Main(string[] args)
{
int number = 5;
UpdateValue(ref number);
Console.WriteLine(number);
Console.ReadKey();
}
static void UpdateValue(ref int value)
{
value = 10;
}
}
}
走る:
注意点1
ref によって渡される変数は初期化する必要があります。初期化しないとエラーが報告されます。
注意点2
ref パラメータはメソッド内で割り当てられていないため、効果はありません。
namespace RefAndOut
{
internal class Program
{
static void Main(string[] args)
{
int number = 5;
string name = "test";
UpdateValue(ref number, ref name);
Console.WriteLine(number);
Console.WriteLine(name);
Console.ReadKey();
}
static void UpdateValue(ref int value, ref string name)
{
//value = 10;
//name = "tt";
}
}
}
走る:
3、アウトキーワード
ケース
namespace RefAndOut
{
internal class Program
{
static void Main(string[] args)
{
int age;
string name;
Test(out age, out name);
Console.WriteLine("age:{0}, name:{1}", age, name);
Console.ReadKey();
}
static void Test(out int age, out string name)
{
age = 16;
name = "张三";
}
}
}
走る:
注意点1
out キーワードはメソッド本体内で割り当てる必要があります。割り当てないとエラーが報告されます。
注意点2
out パラメータを使用すると、実行された変数が初期化されない可能性があります
4. ref キーワードと out キーワードの類似点
1. どちらも関数パラメータを通じて渡されます。
ref と out はどちらもパラメーターを参照によって渡すために使用され、渡されたパラメーターの値はメソッド内で変更できます。
2. メソッドを呼び出す前に両方を初期化できます。
ref と out はどちらもメソッドを呼び出す前に初期化でき、メソッド呼び出し後、パラメータの実際の値はメソッド内での代入の対象になります。
5、ref キーワードと out キーワードの違い
1. パラメータの初期化:
ref キーワードを使用してパラメータを渡す場合、パラメータは関数を呼び出す前に初期化 (割り当て) する必要があります。out キーワードを使用してパラメータを渡す場合、パラメータは呼び出された関数内で初期化できます。
2. メソッド内の代入:
ref キーワードを使用してパラメータを渡す場合、関数内で代入を行うことはできません。out キーワードを使用してパラメータを渡す場合は、関数に値を割り当てる必要があります。
終了
この投稿が役に立った場合は、フォロー + いいね + メッセージを残してください。ありがとうございます。
終わり