마이크로소프트, ‘C# 10’ 출시··· “더 보기 좋은 코드 지원” - CIO Korea

 
10시 42분
Paul Krill | InfoWorld
마이크로소프트에서 개발한 닷넷 플랫폼용 객체-지향, 타입-세이프 프로그래밍 언어의 최신 릴리즈 ‘C# 10’이 출시됐다. 이는 코드를 ‘더 보기 좋게’, 더 빠르게, 더 표현력 있게 만들기 위한 기능을 지원한다고 회사 측은 밝혔다.
C# 업그레이드는 ‘닷넷 6 소프트웨어 개발 프레임워크’ 및 ‘비주얼 스튜디오 2022 IDE’의 일부이며, 이들은 지난 11월 8일 프로덕션 릴리즈로 공개됐다.
notion imagenotion image
ⓒGetty Images
  • 마이크로소프트에 따르면 C# 10 컴파일러는 코드를 더 잘 이해하고, 가짜 오류를 적게 생성한다. 개발자는 널(null) 참조에 관한 가짜 오류 및 경고를 더 적게 볼 수 있을 것이라고 회사 측은 전했다.
  • C#의 using 지시문을 사용하면 네임스페이스로 작업하는 방법을 단순화할 수 있다. C# 10에서 global using implicit using은 각 파일의 맨 위에 지정해야 하는 using 수를 줄인다.
  • implicit using이 닷넷 6 템플릿에서 활성화되며, 빌드 중인 프로젝트 유형에 공통 global using 지시문을 자동으로 추가한다. Implicit using을 활성화하려면 개발자가 .csproj 파일에서 ImplicitUsing 속성을 설정해야 한다.
  • 네임스페이스를 문장으로 포함시킬 수 있다. 그 뒤에 세미콜론이 올 수 있고, 중괄호 없이 사용할 수 있다.
  • 람다(Lambda) 유형 및 구문이 개선됐다. 이제 람다 표현식은 ‘내추럴’ 유형을 가질 수 있다. 이는 컴파일러가 람다 표현식 유형을 유추할 수 있다는 의미라고 마이크로소프트는 설명했다.
  • C# 10에서는 람다 표현식에 메소드 및 로컬 함수와 동일한 방식으로 속성을 넣을 수 있다.
  • 구조체와 클래스 간의 패리티를 향상시키는 등 구조체가 개선됐다. 이러한 새로운 기능에는 매개변수가 없는 생성자, 필드 이니셜라이저, 레코드 구조체, withcode 표현식 등이 포함된다.
  • 레코드 클래스가 개선됐다. ToString() 메소드에 sealed 제어자가 추가돼, 컴파일러가 파생된 레코드 형식에 ToString 메소드를 합성할 수 없다.
  • with 표현식이 레코드 구조체 및 익명 유형을 포함한 모든 구조체에서 지원된다.
  • 성능과 표현력을 위해 보간된 문자열 구문이 개선됐다.
  • 속성 패턴이 확장됐다. 속성 패턴 내에서 패턴의 중첩 값에 더 쉽게 액세스할 수 있다.
  • 이제 인터페이스의 정적 멤버를 추상으로 선언할 수 있어, 개발자가 사용할 수 있는 연산자를 추상화하는 새로운 제네릭 매스 제약조건(generic math constraints)의 기반을 제공한다.
ciokr@idg.co.kr