out 키워드는 출력 전용 매개 변수입니다. 보통 메소드의 결과는 하나인데 여러 개의 결과를 원할 때도 있습니다. 그럴 때 사용합니다.
void Division(int a, int b, out int quotient, out int remainder)
{
quotient = a / b;
remainder = a % b;
}
int number1 = 100;
int number2 = 100;
int quotient;
int remainder;
Division(a, b, out quotient, out remainder);
out 키워드를 통해 메소드의 결과를 메소드 호출이 끝난 후에도 변수에 담을 수 있습니다.
사실 ref 키워드를 사용해도 똑같은 결과를 낼 수 있는데 out 키워드는 ref 키워드에게는 없는 안전장치가 있습니다.
out 키워드를 명시하면 메소드가 매개 변수에 결과를 저장하지 않으면 컴파일러가 에러 메시지를 출력합니다. ref 키워드는 아무런 경고를 하지 않죠.
Division(a, b, out int quotient, out int remainder);
그리고 출력 전용 매개 변수는 호출할 때 매개 변수 목록 안에서 즉석으로 선언할 수 있습니다.