728x90
300x250

[C#.NET] Out과 Ref의 차이점

Out은 FillArray(임의 선언)에서 초기화를 합니다.

using System;
class TestOut
{
    static void FillArray(out int[] arr)
    {
        arr = new int[5] { 1, 2, 3, 4, 5 };
    }
    static void Main()
    {
        int[] theArray;
        FillArray(out theArray);
        Console.WriteLine("Array elements are:");
        for (int i = 0; i < theArray.Length; i++)
            System.Console.WriteLine(theArray[i] + " ");
        System.Console.WriteLine("Press any key to exit");
    }
}

Ref는 Main 메서드에서 초기화합니다.


using System;
class TestRef
{
    static void FillArray(ref int[] arr)
    {
        if (arr == null)
        {
            arr = new int[10];
        }
        arr[0] = 1111;
        arr[4] = 5555;
    }
    static void Main()
    {
        int[] theArray = { 1, 2, 3, 4, 5 };
        FillArray(ref theArray);
        System.Console.WriteLine("Array elements are:");
        for (int i = 0; i < theArray.Length; i++)
            System.Console.WriteLine(theArray[i] + " ");
        System.Console.WriteLine("Press any key to exit");
    }
}

반응형

+ Recent posts