본문 바로가기

Lang/C#

[C#] out var 파라미터

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