[c#] C# 7 버전의 개선 사항
C# 7은 2017년 3월에 출시된 메이저 업그레이드입니다. 새로운 기능과 성능 향상, 편의성이 강화된 C# 7은 개발자들에게 많은 혜택을 주었습니다. 이번 포스트에서는 C# 7에서 추가된 기능들을 다뤄보겠습니다.
패턴 매칭
C# 7에서는 패턴 매칭(Pattern Matching) 기능이 도입되어 손쉬운 조건부 코드 실행이 가능해졌습니다. switch
문을 통해 타입 확인과 캐스팅을 간편하게 할 수 있게 되었고, null 체크 및 조건부 표현을 쉽게 작성할 수 있게 되었습니다.
switch (obj)
{
case string s:
Console.WriteLine("문자열입니다");
break;
case int i:
Console.WriteLine("정수입니다");
break;
default:
Console.WriteLine("다른 타입입니다");
break;
}
로컬 함수
C# 7에서는 로컬 함수(Local Functions)를 지원하여 메서드 내부에서 다른 서브 메서드를 정의할 수 있게 되었습니다. 이로써 코드 중복을 줄이고 가독성을 높일 수 있게 되었습니다.
void ParentMethod()
{
// ...
int Add(int a, int b)
{
return a + b;
}
int result = Add(1, 2);
// ...
}
값 튜플
C# 7에서는 값 튜플(Value Tuples)을 도입하여 여러 값을 반환하는 메서드에서 간단하게 여러 값을 튜플 형태로 반환할 수 있게 되었습니다.
(string FirstName, string LastName) GetName()
{
return ("John", "Doe");
}
var name = GetName();
Console.WriteLine(name.FirstName); // John
Console.WriteLine(name.LastName); // Doe
비동기 메서드 개선
C# 7에서는 비동기 메서드(Asynchronous Methods)의 사용을 개선하여 async
및 await
를 통한 비동기 코드 작성이 더욱 쉬워졌습니다.
async Task<string> DownloadContent()
{
var httpClient = new HttpClient();
var content = await httpClient.GetStringAsync("https://www.example.com");
return content;
}
C# 7 버전의 새로운 기능들은 개발자들에게 높은 생산성과 향상된 코드 가독성을 제공합니다. 앞으로도 C#의 발전에 기대가 됩니다.
참조:
- https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-7
- https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-7#pattern-matching