C#
최신 C# 기능
C# 11
C# 11 새기능
C# 11: Raw String Literal
C# 11: 문자열 내삽 복수라인
C# 11: u8 접미어
C# 11: Generic Math 지원
C# 11: Generic Attribute
C# 11: 리스트 패턴
C# 11: 파일 로컬 타입
C# 11: required modifier
C# 11: Auto-default struct
C# 11: ReadOnlySpan 패턴 매칭
C# 11: 확장된 nameof 범위
C# 11: nint, nuint
C# 11: ref 필드
C# 11: 소문자 타입명 경고
C# 11: 향상된 method group 변환
C# 10
VS 2022 설치
C# 10 global using
C# 10 File-scoped Namespace
C# 10 향상된 문자열 내삽
C# 10 향상된 람다식 유추
C# 10 struct 기능 향상
C# 10 record struct
C# 10 확장된 속성패턴
C# 10 향상된 명료한 할당
C# 10 Destructor 기능 개선
C# 9.0
C# 9 레코드 타입
C# 9 init accessor
C# 9 최상위 프로그램
C# 9 향상된 패턴 매칭
C# 9 향상된 Target Typing
C# 9 공변 리턴 타입
C# 9 Native Int 타입
C# 8.0
C# 8 디폴트 인터페이스 멤버
C# 8 패턴 매칭
C# 8 Nullable Reference Type
C# 8 인덱싱과 슬라이싱
C# 8 비동기 스트림
C# 8 using 선언
C# 8 널 병합 할당자
C# 8 구조체 읽기 전용 멤버
C# 8 기타 기능들
C# 7.0
C# 7.0 새기능
C# 7.0 패턴 매칭
C# 7.0 튜플
C# 7.0 로컬 함수
C# 7.0 out 파라미터
C# 7.0 리터럴 표현
C# 7.0 Deconstructor
C# 7.0 ref return
C# 7.0 async 리턴타입
C# 7.0 Expression-bodied
C# 7.0 throw expression
C# 6.0
C# 6.0 새기능
C# 6.0 널 조건 연산자
C# 6.0 문자열 내삽
C# 6.0 Dictionary초기자
C# 6.0 nameof 연산자
C# 6.0 using static문
C# 6.0 catch블럭 await
C# 6.0 Exception 필터
C# 6.0 자동 속성 초기자
C# 6.0 읽기전용 자동 속성
C# 6.0 Expression-bodied

C#으로 이해하는 자료구조
C# 프로그래밍 기초 실습 전자책
C# 10 : const string 문자열 내삽

C# 10 이전에서는 상수 문자열(const string)에서 문자열 내삽(string interpolation)을 사용할 수 없었다. C# 10에서는 이제 const string을 정의할 때, 문자열 내삽 기능을 사용할 수 있게 되었다.

예제

const string BASEDIR = "C:\\Temp";

// C# 10: 상수에서 string interpolation 사용 가능
const string LOGDIR = $"{BASEDIR}\\logs";




C# 10 : 향상된 string interpolation 핸들러

컴파일러는 내삽(string interpolation) 문자열을 만나면, 이를 string.Format으로 변환하여 처리하는데, 이 부분에서 많은 메모리 할당이 일어날 수 있다. C# 10/.NET 6에서는 이러한 부분을 향상시키기 위해, 여러 API 내에서 InterpolatedStringHandler 기능을 넣었는데, 예를 들어, StringBuilder.Append() 메서드에서 기존의 Append(string? value) 위에 Append(ref StringBuilder.AppendInterpolatedStringHandler handler)를 넣어 AppendInterpolatedStringHandler가 string interpolation을 보다 효율적으로 처리하게 하였다. 아래 예제의 StringBuilder.Append() 메서드는 AppendInterpolatedStringHandler를 사용하게 되는데, 이 경우 StringBuilder는 string.Format을 사용하는 대신 'LOG: ', 'errorCode값', 'errorMsg값' 을 차례로 Append하는 방식으로 메모리할당을 줄이는 방식으로 Append를 수행한다.

예제

// AppendInterpolatedStringHandler를 사용
var sb = new StringBuilder();
sb.Append($"LOG: {errorCode}: {errorMsg}");



본 웹사이트는 광고를 포함하고 있습니다. 광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.