C# ref/out の使用法

目次

1. はじめに

2. ref キーワード

ケース

注意点1

注意点2

3、アウトキーワード

ケース

注意点1

注意点2

4. ref キーワードと out キーワードの類似点

5、ref キーワードと out キーワードの違い

終了


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 キーワードを使用してパラメータを渡す場合は、関数に値を割り当てる必要があります。

終了

この投稿が役に立った場合は、フォロー + いいね + メッセージを残してください。ありがとうございます。

終わり

おすすめ

転載: blog.csdn.net/qq_38693757/article/details/131439776