카테고리 없음
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행 >> 배열안 중복 확인 메서드