out

Clean·2025년 3월 15일

void함수에서는 return으로 값을 반환받는게 아니라,
특정 조건을 만족할 시 함수를 종료하는 용으로 사용했다.

그렇다면 void함수에서는 반환 값을 받을 수 없을까?


TryParse를 보면 변환이 성공적으로 되었는지 알 수 있는 bool
성공적으로 변환이 되었을 때 int값이 들어오는 result가 있다.

outreturn 상관없이 반환을 받는 키워드로 이해했다.


static void Main(string[] args)
{
    int number; // 초기화 전
    int number2 = 15;
    OutTest(out number, out number2);
    Console.WriteLine($"number의 값은 ? : {number}");
    Console.WriteLine($"number2의 값은 ? : {number2}");
}
static void OutTest(out int outNumber, out int outNumber2)
{
	// 변수를 초기화해야 에러가 안남
    outNumber = 10;
    outNumber2 = 25;
}

초기화하지 않은 변수number를 반환값이 없는 void함수에 전달했는데,

콘솔창을 확인하면 number가 초기화되고 값이 들어와있다.


out은 변수 앞에 out키워드를 붙여야 하며,

전달하는 공간에서는 변수를 초기화하지 않아도 되지만,

전달받은 함수 내부에서 무조건 초기화를 해야 한다.

또한 함수 종료시 전달받은 변수의 값이 변한다.

0개의 댓글