C#의 out 키워드 간단 정리
C#의 out
키워드는 메서드에서 사용되는 매개변수 키워드 중 하나로, 메서드가 호출될 때 해당 매개변수가 초기화되지 않아도 되고, 메서드 내부에서 해당 매개변수에 값을 할당한 후 호출한 곳에서 그 값을 사용할 수 있게 합니다.
주로 메서드가 여러 값을 반환해야 하는 경우 사용됩니다.
특징
- 초기화 필요 없음
out
매개변수 메서드를 호출할 때, 인자는 초기화되지 않아도 됩니다.- 초기화가 되어 있더라도
out
매개변수를 사용하는 메서드에서는 그 값을 사용할 수 없습니다.
- 다중 반환
- 하나의 메서드에서 여러 값을 반환하고자 할 때 유용합니다.
out
으로 지정된 매개변수는 반드시 메서드에서 변수에 값을 넣어 반환해야 합니다. 메서드 내부에서out
매개변수에 값을 할당하지 않으면 컴파일 오류가 발생합니다.
out
키워드의 사용 방법
1. out
매개변수 선언
메서드 정의에서 반환으로 사용하고 싶은 매개변수를 out
키워드로 선언해야 합니다.
1
2
3
4
public void SampleMethod(out int result)
{
result = 10; // 반드시 값을 할당해야 함
}
2. out
매개변수로 메서드 호출
메서드를 호출할 때도 out
매개변수의 인수 앞에 out
키워드를 붙여야 합니다.
1
2
3
int number;
SampleMethod(out number);
Console.WriteLine(number); // 출력: 10
out
키워드를 사용하는 이유
- 다중 반환값 처리
- 메서드에서 여러 값을 반환해야 할 때,
out
키워드를 사용하여 하나의 메서드에서 여러 값을 반환 받을 수 있습니다.
- 메서드에서 여러 값을 반환해야 할 때,
- 상태 정보 전달
- 메서드가 실행된 결과에 대한 추가 정보를 호출자에게 전달할 때 유용합니다.
- 효율성 향상
- 객체를 복사하거나 여러 개의 값을 포함하는 복잡한 반환 객체를 생성하는 대신,
out
매개변수를 사용하여 값을 직접 설정할 수 있습니다.
- 객체를 복사하거나 여러 개의 값을 포함하는 복잡한 반환 객체를 생성하는 대신,
주의사항
out
키워드를 사용하는 변수는 메서드 내부에서 반드시 값을 할당해야 합니다.out
매개변수는 메서드 내부에서 값을 할당하지 않으면 컴파일 오류가 발생합니다.out
키워드 매개변수는 초기화되지 않은 변수도 사용 가능하지만, 메서드 내에서 사용 할 수는 없습니다.
예제
다음 예제는 나누기 메서드에서 나머지를 추가로 반환 받고 싶어 out
키워드를 사용하는 예제입니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
static int Divide(int a, int b, out int remainder)
{
remainder = a % b;
return a / b;
}
static void Main(string[] args)
{
int num1 = 10;
int num2 = 3;
int remain;
int quot = Divide(num1, num2, out remain);
Console.WriteLine($"{num1} / {num2} = {quot} ({remain})"); // 10 / 3 = 3 (1)
}
이처럼 메서드 내에서 추가로 받고 싶은 값이 있다면 유용하게 사용 할 수 있습니다.
out
vs ref
out
: 메서드를 호출할 때 초기화되지 않아도 되고, 메서드 내부에서 반드시 값을 할당해야 합니다.ref
: 메서드를 호출할 때 반드시 초기화되어 있어야 하며, 메서드 내부에서 값을 할당하지 않아도 됩니다.
참고
이 기사는 저작권자의 CC BY-NC-ND 4.0 라이센스를 따릅니다.