카테고리 없음

C# _ 반환값과 매개 변수

bebeghi3356 2024. 11. 27. 09:54
  • void형 메소드는 리턴하는 값이 없어서 retrun;문을 넣지 않아도 됨.
  • retrun문은 값을 하나만 반환할 수 있음
  • 반환값이 여러개일 경우(*****) >> 배열에 반환할 값을 넣은 후 배열을 반환한다.
  • 소스8-18) 함수를 호출하면 배열에 랜덤하게 5~10개의 주사위 숫자를 넣어서 변환하는 프로그램(중요)

namespace source08
{
    internal class Program
    {
        static int[] DrawDice()
        {
            Random rnd = new Random();
            int[] diceAry = new int[rnd.Next(5, 11)];

            for (int i = 0; i < diceAry.Length; i++)
                diceAry[i] = rnd.Next(1, 7);

            return diceAry;         //배열을 리턴시킴
        
        }




        static void Main(string[] args)
        {
            int[] ary;
            ary = DrawDice();   
            Console.Write(ary.Length);

            for (int i = 0; i < ary.Length; i++)
            {
                Console.Write(ary[i] + " ");
            }
            Console.WriteLine();

        }



    }
}

  • 값의 전달 방법
  • 1. call by value >> 값을 통ㅎ ㅐ 호출
  • namespace source08
    {
        internal class Program
        {
            static void Func(int a)
            {
                a = a + 1;
                Console.WriteLine(a);
             
            }




            static void Main(string[] args)
            {
                int a = 10;

                Func(a);
                Console.WriteLine(a);

            }



        }
    }
  • 2. call by reference >> 주소를 통해 메서드 홏ㄹ
  • 원래 주소값을 포인터로 받는데, C#에서는 포인터가 없고 대신에 ref라는 예약어를 통해서 주소값을 받는다
  • namespace source08
    {
        internal class Program
        {
            static void Func(ref int a)     //a의 주소값
            {
                a = a + 1;
                Console.WriteLine(a);
             
            }




            static void Main(string[] args)
            {
                int a = 10;

                Func(ref a);    //전달받은 a의 주소
                Console.WriteLine(a);   //func실행 후 a의 주소

            }



        }
    }
  • 교재 337페이지 거북이(소스8-22)
  • 340페이지에 13~23행 >> 배열안 중복 확인 메서드