CWN(CHANGE WITH NEWS) - MS, C# 11 업그레이드 사항 공개…무엇이 달라지나?

  • 흐림장수8.7℃
  • 구름많음태백4.4℃
  • 구름많음영덕2.0℃
  • 흐림봉화-2.0℃
  • 맑음제주11.1℃
  • 흐림울릉도7.3℃
  • 구름많음구미-1.3℃
  • 구름많음해남13.2℃
  • 구름조금강진군2.2℃
  • 구름많음북부산4.2℃
  • 흐림의성-2.1℃
  • 흐림청송군-3.5℃
  • 구름많음동해2.5℃
  • 흐림금산4.6℃
  • 흐림대구0.0℃
  • 흐림이천0.2℃
  • 흐림의령군-0.2℃
  • 구름많음성산14.7℃
  • 구름많음임실6.4℃
  • 구름많음목포12.4℃
  • 흐림철원-3.1℃
  • 흐림양평-0.1℃
  • 흐림산청-0.8℃
  • 흐림추풍령0.8℃
  • 흐림원주-0.6℃
  • 흐림함양군-0.5℃
  • 맑음영천-1.1℃
  • 구름많음정읍10.9℃
  • 흐림합천-1.1℃
  • 구름많음강릉2.9℃
  • 흐림전주8.4℃
  • 구름많음거제5.5℃
  • 구름많음영광군9.9℃
  • 구름많음울산5.4℃
  • 구름많음진주1.5℃
  • 구름많음고창10.1℃
  • 흐림천안2.1℃
  • 구름많음순천0.9℃
  • 비북강릉1.6℃
  • 비 또는 눈북춘천-3.9℃
  • 흐림경주시-1.4℃
  • 흐림인천3.0℃
  • 구름조금울진5.4℃
  • 흐림부여2.2℃
  • 흐림서귀포15.2℃
  • 흐림춘천-3.2℃
  • 흐림보은1.3℃
  • 구름조금장흥2.2℃
  • 흐림부안10.8℃
  • 구름많음김해시5.0℃
  • 흐림거창-1.2℃
  • 흐림충주0.6℃
  • 구름많음남원3.2℃
  • 흐림서울1.9℃
  • 구름많음흑산도12.7℃
  • 흐림대관령0.2℃
  • 흐림강화-0.3℃
  • 구름많음진도군13.8℃
  • 구름조금완도5.3℃
  • 흐림군산7.8℃
  • 흐림동두천-1.0℃
  • 흐림대전2.7℃
  • 구름많음여수5.5℃
  • 흐림세종1.5℃
  • 흐림서산8.0℃
  • 흐림홍성10.5℃
  • 흐림백령도2.3℃
  • 흐림홍천-2.3℃
  • 구름많음북창원5.4℃
  • 흐림영주0.0℃
  • 흐림정선군-3.2℃
  • 흐림제천-0.9℃
  • 구름많음속초2.3℃
  • 흐림광주6.5℃
  • 흐림안동-0.2℃
  • 구름많음광양시4.6℃
  • 흐림보령10.6℃
  • 구름많음인제-4.1℃
  • 맑음고산15.0℃
  • 구름많음남해3.9℃
  • 흐림서청주0.4℃
  • 흐림영월-2.0℃
  • 구름조금포항2.4℃
  • 흐림수원3.1℃
  • 구름많음순창군3.1℃
  • 흐림부산11.4℃
  • 구름많음통영5.6℃
  • 흐림상주1.0℃
  • 흐림밀양2.2℃
  • 구름많음고흥3.8℃
  • 구름많음양산시4.6℃
  • 구름조금보성군1.9℃
  • 흐림문경0.3℃
  • 구름많음창원5.9℃
  • 구름많음청주2.4℃
  • 흐림파주-1.7℃
  • 구름많음고창군10.5℃
  • 2026.01.15 (목)

MS, C# 11 업그레이드 사항 공개…무엇이 달라지나?

김진범 / 기사승인 : 2022-04-23 09:29:32
  • -
  • +
  • 인쇄

해외 온라인 매체 인포월드가 .NET 7 소프트웨어 개발 플랫폼과 함께 C#11 언어 업그레이드가 프로덕션 릴리스로 제공된다는 소식을 전했다.

C#11은 성능을 업그레이드하면서 원시 문자열(raw string literal), checked 연산자 등 일부 기능을 개선한다. 그와 동시에 정적 메서드 그룹을 캐싱(caching)해 런타임 성능을 향상한다. 특히, ASP.NET 애플리케이션 성능 개선을 기대할 수 있으며, 개발자는 이를 손쉽게 활용할 수 있을 전망이다.

이번에 새로 지원하는 원시 문자열은 큰 따옴표 세개 (“ ” ”)로 시작과 끝을 표시한다. 특수문자 등을 이스케이프 시퀀스를 이용해야 하는 번거로움을 덜어 문자열을 이용한 코드 작성이 수월해진다.

원시 문자열에는 이스케이프가 존재하지 않으며, 모든 문자(character)는 문자열의 일부로 인식된다. 예를 들어 /t 를 출력하면 백슬래시와 문자 t 가 나올 뿐, 탭의 효과가 나타나지 않는다.

C# 11은 선택된 사용자 정의 연산자를 사용해, 선택된 수식자로 표시된 특정 연산자를 checked로 선언하는 기능을 추가한다. 이 기능은 개발자들이 산술적 오버플로우가 존재하는 타입을 이용하는 사용자 정의 연산자를 만드는 데 핵심 역할을 한다.

C# 11에 탑재될 예정이었던 기능인 매개변수 null 검사(parameter null checking)은 적용되지 않는다. 당초 마이크로소프트는 매개 변수 이름 뒤에 !!를 입력해, 메서드 실행 전에 null 검사를 지원하고자 했다. 그러나 4월 18일(현지 시각), 마이크로소프트는 공식 블로그를 통해 null 검사 기능이 제대로 설계되지 않았다고 판단했다고 밝혔다.

C# 11은 이제 UTF-8 문자로만 이루어진 문자열에만 바이트 표현 변환을 지원한다. 그동안 UTF-8을 16진법의 장황하면서 가독성이 낮으며, 에러가 발생하기 쉬운 코드로 변환하거나 런타임시 문자열 인코딩을 해야 하는 문제가 발생했다. 이에, C# 11에는 UTF-8 인코딩 부분에도 변경 사항도 적용됐다. 또한, 개발자는 Span<char>나 ReadonlySpan<char>을 문자열 패턴과 일치시킬 수 있다.

자동 디폴트 구조체 사용 부분도 이전과 달라졌다. 이제 컴파일러는 정해진 배정 규칙이 없는 필드에 대하여 디폴트 값을 부여할 수 있다. 이 기능은 명시적 생성자를 포함하는 구조체에 대한 이니셜라이징을 단순화한다.

마지막으로 모든 소문자 ASCII 문자로 선언되는 모든 유형에 대한 경고를 포함하는 Warning Wave 7 도입도 C# 11의 변경 사항으로 살펴볼 수 있다. 이는 C# 진화에 때때로 새로운 키워드 진화가 필요하기 때문에 도입된 소이다.

한편, 마이크로소프트는 이미 C# 11 업데이트와 관련해 리스트 패턴 등의 기능을 공개한 바 있다.

[저작권자ⓒ CWN(CHANGE WITH NEWS). 무단전재-재배포 금지]

최신기사

뉴스댓글 >

- 띄어 쓰기를 포함하여 250자 이내로 써주세요.
- 건전한 토론문화를 위해, 타인에게 불쾌감을 주는 욕설/비방/허위/명예훼손/도배 등의 댓글은 표시가 제한됩니다.

댓글 1

  • 쥰니님 2022-09-07 22:03:48
    뭔가 진짜 애매하게 업데이트 됬네요...

Today

Hot Issue