C# 7.0에서는 out 매개변수(out parameter) 기능이 크게 개선되었습니다. 이제 out 변수를 메서드 호출 시 인자 목록 안에서 직접 선언할 수 있어, 별도의 선언문을 작성할 필요가 없습니다.
Out 매개변수란?
out 매개변수는 메서드가 여러 값을 호출자에게 반환해야 할 때 유용하게 사용됩니다. C# 7.0 이전에는 out 변수를 사용하기 전에 반드시 메서드 호출부 밖에서 미리 선언해야 했지만, 새로운 버전에서는 값을 실제로 사용하는 위치에서 인라인(inline)으로 선언할 수 있습니다.
개선된 기능의 장점
- 코드가 훨씬 더 읽기 쉬워집니다.
- 변수에 초기값을 미리 할당할 필요가 없습니다.
- 선언과 사용이 한곳에 모여 코드 흐름을 파악하기 쉬워집니다.
기존 문법 (C# 7.0 이전)
C# 7.0 이전 버전에서는 out 변수를 메서드 호출 전에 별도로 선언해야 했습니다.
예제
class Program{
public static void AddMultiplyValues(int a, int b, out int c, out int d){
c = a + b;
d = a * b;
}
public static void Main(){
int c; // 별도 선언 필요
int d; // 별도 선언 필요
AddMultiplyValues(5, 10, out c, out d);
System.Console.WriteLine(c);
System.Console.WriteLine(d);
Console.ReadLine();
}
}출력 결과
15 50
새로운 문법 (C# 7.0)
C# 7.0부터는 메서드 호출 시 인자 목록 안에서 out 변수를 직접 선언할 수 있습니다.
예제
class Program{
public static void AddMultiplyValues(int a, int b, out int c, out int d){
c = a + b;
d = a * b;
}
public static void Main(){
// 인자 목록에서 바로 선언
AddMultiplyValues(5, 10, out int c, out int d);
System.Console.WriteLine(c);
System.Console.WriteLine(d);
Console.ReadLine();
}
}출력 결과
15 50
마무리
이처럼 C# 7.0의 인라인 out 변수 선언은 불필요한 코드를 줄이고 가독성을 높여주는 유용한 기능입니다. 특히 TryParse 같은 패턴에서 그 효과가 두드러지며, 간결하고 직관적인 코드 작성을 가능하게 합니다.