C#/C#_기초강의

(C#) ref 참조에 의한 호출(call by reference)

코딩ABC 2023. 4. 30. 14:32
반응형

ref 키워드는 변수가 참조를 나타내거나 다른 개체의 별칭임을 나타냅니다.

매개변수에 ref 키워드를 사용하면 인수가 값이 아니라 참조로 전달됨을 나타냅니다.

호출하는 쪽의 매개변수에 ref를 사용하면, 호출된 메서드에서도 ref로 받아야 하며, 이 경우 ref로 전달된 매개변수를 통해서 호출할 쪽의 지역 변수의 값을 변경할 수 있습니다.

 

다음 예제는 두 개의 값을 교환하는 swap 메서드의 예입니다.

        void swap(ref int x, ref int y)
        {
            int temp = x;
            x = y;
            y = x;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int a = 10, b = 20;
            swap(ref a, ref b);
            listBox1.Items.Add(String.Format("a={0}, b={1}", a, b));
        }
    }

ref: call by reference 참조에 의한 호출

 

 

매개 변수에 ref 키워드를 사용하면 ref를 사용한 매개 변수의 개수 만큼의 처리 결과를 지역 변수로 받을 수 있습니다.

아래의 inc 메서드는 매개변수로 ref 변수 3개를 사용하고 있습니다.

한 번 호출하면 3개의 매개 변수값이 1씩 증가되어 있음을 알 수 있습니다.


        void swap(ref int x, ref int y, ref double z)
        {
            x++;
            y++;
            z++;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int a = 1, b = 2;
            double c = 3.3;

            swap(ref a, ref b, ref c);
            listBox1.Items.Add(String.Format("a={0}, b={1},c={2}", a, b,c));

            swap(ref a, ref b, ref c);
            listBox1.Items.Add(String.Format("a={0}, b={1},c={2}", a, b, c));
        }

ref: call by reference 참조에 의한 호출

 

 

반응형