본문 바로가기

유니티 프로그래밍/C# 프로그래밍

C# Call by Value, Call by Reference

C#에서의 메서드를 호출할 때 기본은, 값복사를 하여 사용하는 식이다

 

아래에서 값 복사와, 참조를 사용하는 방법을 따로 분리해서 사용하는 예제를 확인해보면 된다.

 

class SwapByValRef
{
    public static void Swap1(int a, int b) // 값 복사
    {
        int temp = b;
        b = a;
        a = temp;
    }
    public static void Swap2(ref int a, ref int b) // 참조
    {
        int temp = b;
        b = a;
        a = temp;
    }
    static void Main(string[] args)
    {
        { // Call by Value
            int x = 3;
            int y = 4;

            Console.WriteLine($"x:{x}, y:{y}");

            Swap1(x, y);

            Console.WriteLine($"x:{x}, y:{y}");
            Console.WriteLine();
        }

        { // Call by Reference
            int x = 3;
            int y = 4;

            Console.WriteLine($"x:{x}, y:{y}");

            Swap2(ref x, ref y);

            Console.WriteLine($"x:{x}, y:{y}");
        }
    }
}