[C# 7.0] 편리해전 out 매개변수

eunjin lee·2023년 1월 14일
0

C# 9.0 프로그래밍

목록 보기
46/50

c# 6.0 이전에는 out 매개변수가 정의된 메서드를 사용하려면 반드시 인자로 전달될 인스턴스를 미리 선언해야 했다. 하지만 c# 7.0부터는 변수 선언 없이 변수의 타입과 함께 out 예약어를 쓸 수 있다.

✍ c# 6.0 이전

int result;
int.TryParse("50", out result);
Console.WriteLine(result);

✍ c# 7.0 이후

int.TryParse("50", out int result);
Console.WriteLine(result);
  • c# 7 컴파일러는 결국 c# 6 이전의 코드로 변환해 컴파일한다.

✍ 중복 변수 선언 오류_c#7

int.TryParse("50", out int result);
Console.WriteLine(result);

int.TryParse("100", out int result);
Console.WriteLine(result);
  • 위의 코드는 결국 아래의 코드와 같이 컴파일되기 때문에 오류가 발생한다.

✍ 중복 변순 선언 오류_c#6

int result;
int.TryParse("50", out result);
Console.WriteLine(result);

int result; //중복 변수 선언
int.TryParse("100", out result);
Console.WriteLine(result);

✍ var 예약어 사용

int.TryParse("50", out var result); //out int result로 컴파일러가 처리
Console.WriteLine(result);

✍ 변수명 생략

int.TryParse("50", out int _); //변수명 생략
int.TryParse("50", out var _); //타입 추론
int.TryParse("50", out _); //타입까지도 생략

0개의 댓글