S_pot

210520 C#_out, ref 키워드 본문

C#

210520 C#_out, ref 키워드

S_pot 2021. 5. 20. 17:06

out키워드

  // out 키워드: 반드시 data 저장(대입)을 1번 해야함을 강제한다.
        // 주로 메소드 호출 시 값을 반드시 입력 받아야 할 때
        // 안정장치 기법으로 활용된다.
        static void Smart(int Num1, int Num2, out int Num3, out int Num4)
        {
            Num3 = Num1 / Num2; // 몫
            Num4 = Num1 % Num2; // 나머지

        }

        static void Main(string[] args)
        {
            // 몫과 나머지 알아내기
            int iNum1 = 17;     // 피잿수
            int iNum2 = 4;      // 잿수
            int iNum3;          // 몫
            int iNum4;          // 나머지

            Smart(iNum1, iNum2, out iNum3, out iNum4);       // ref를 사용하면 Main과 Smart에 각각 수가 생성되지 않아서 메모리적인 측면에서 효율적이다.

            Console.WriteLine($"{iNum1}/{iNum2} = {iNum3}");
            Console.WriteLine($"{iNum1}%{iNum2} = {iNum4}");
        }

 

ref키워드

 static void Smart(int Num1, int Num2, ref int Num3, ref int Num4)
        {
            // 몫과 나머지 계산
            Num3 = Num1 / Num2; // 몫
            Num4 = Num1 % Num2; // 나머지
        }


        static void Main(string[] args)
        {
            // 몫과 나머지 알아내기
            int iNum1 = 17;     // 피잿수
            int iNum2 = 4;      // 잿수
            int iNum3 = 0;          // 몫
            int iNum4 = 0;          // 나머지

            Smart(iNum1, iNum2, ref iNum3, ref iNum4);       // ref를 사용하면 Main과 Smart에 각각 수가 생성되지 않아서 메모리적인 측면에서 효율적이다.

            Console.WriteLine($"{iNum1}/{iNum2} = {iNum3}");
            Console.WriteLine($"{iNum1}%{iNum2} = {iNum4}");
        }

'C#' 카테고리의 다른 글

210520 C#_로컬함수  (0) 2021.05.20
210520 C#_메서드 참조  (0) 2021.05.20
210520 C#_null 조건부/병합 연산자, 시프트 연산자  (0) 2021.05.20
210520 C#_객체생성, 삭제  (0) 2021.05.20
210520 C#_$보간방식, Format방식  (0) 2021.05.20