728x90
out은 참조를 통해 인수를 전달하는 키워드입니다.
return 으로 반환값을 받지 않기 때문에,
2개 이상의 값도 가져올 수 있습니다.
간단한 사용방법은 아래와 같습니다.
함수 호출부와 함수 정의부에서 out 키워드를 사용해야 합니다.
int x, y;
Get(out x, out y); // 함수 호출부
Console.WriteLine($"{x}:{y}");
void Get(out int x, out int y) // 함수 정의부
{
x = 10;
y = 20;
}
출력결과
10:20
C# 7부터 더욱 편리해졌습니다.
Get(out int x, out int y); // 변수 선언없이 사용
Console.WriteLine($"{x}:{y}");
void Get(out int x, out int y)
{
x = 10;
y = 20;
}
변수 선언을 하지 않고 사용할 수 있게 해줍니다.
Get함수의 호출부분에서 선언된 int x, int y는
호출부분이 소속되어 있는 블록 내에서 사용될 수 있습니다.
즉 변수를 미리 선언해놓고 사용하는 것과 같습니다.
Get(out var x, out var y); // var 로 사용
Console.WriteLine($"{x}:{y}");
void Get(out int x, out int y)
{
x = 10;
y = 20;
}
또한 호출부분에서 변수 타입을 밝히지 않고 사용할 수도 있습니다.
호출되는 메서드의 정의를 보고 유추해서 사용하게 됩니다.
Get(out var x, out _); // y가 필요없음
Console.WriteLine($"{x}");
void Get(out int x, out int y)
{
x = 10;
y = 20;
}
필요없는 부분은 out _ 로 생략할 수 있습니다.
728x90
'Lang > C#' 카테고리의 다른 글
[C#] sealed 한정자 (0) | 2022.12.22 |
---|---|
[C#] 자주 사용하는 문자열 관련 함수 (0) | 2022.12.08 |