스마트한 개발 공부/C#

[C#] Method에서 여러 개의 Return 값 받기

스마트한지노 2021. 9. 7. 01:21
728x90
반응형

함수를 만들다 보면 1개의 함수에서 여러 개의 return값을 출력하고 싶을 때가 있다. 이런 경우에 사용할 수 있는 방법 몇 가지를 알아보자.
우선, 두개의 숫자를 더해서 합을 출력하는 함수를 만들었다고 해보자.

static void Main(string[] args)
        {
            Console.WriteLine("두개의 숫자를 각각 입력:");
            int.TryParse(Console.ReadLine(),out int num1);
            int.TryParse(Console.ReadLine(), out int num2);

            int sumNum = Calc(num1,num2);

            Console.WriteLine($"{num1}과 {num2}의 합은 {sumNum}이다");
        }

        private static int Calc(int num1, int num2)
        {
            int sum = num1 + num2;

            return sum;
        }

합뿐만이 아니라, 뺄셈도 구하고 싶다면 어떻게 해야 할까?
첫 번째는 배열을 사용하는 방법이다.

static void Main(string[] args)
{
    Console.WriteLine("2개의 숫자를 각각 입력:");
    int.TryParse(Console.ReadLine(),out int num1);
    int.TryParse(Console.ReadLine(), out int num2);

    int[] sumNum = Calc(num1,num2);

    Console.WriteLine($"{num1}과 {num2}의 합은 {sumNum[0]}이고 차는 {sumNum[1]}");
}

private static int[] Calc(int num1, int num2)
{
    int sum = num1 + num2;

    int minus = num1 - num2;
    int []arr = new int[2];
    arr[0] = sum;
    arr[1] = minus;
    return arr;
}

두 번째는 out, ref 한정자를 사용하는 방법이다.

static void Main(string[] args)
{
    Console.WriteLine("2개의 숫자를 각각 입력:");
    int.TryParse(Console.ReadLine(), out int num1);
    int.TryParse(Console.ReadLine(), out int num2);

    int sumNum = Calc(num1, num2, out int minus);

    Console.WriteLine($"{num1}과 {num2}의 합은 {sumNum}이고 차는 {minus}");
}

private static int Calc(int num1, int num2, out int minus)
{
    int sum = num1 + num2;

    minus = num1 - num2;

    return sum;
}

이렇게 out 한정자를 사용하면 원하는 return 개수만큼 계속해서 추가해서 반환할 수 있다.

728x90
반응형