C#
최신 C# 기능
C# 13
C# 최신 기능
C# 13: params modifier 지원 확장
C# 13: lock 지시어 향상
C# 13: \e (새 Escape Sequence)
C# 13: 객체 초기화 식에 ^ 연산자 사용
C# 13: ref struct 타입 기능 향상
C# 13: partial 속성과 인덱서
C# 13: OverloadResolutionPriority
C# 12
C# 12: 클래스 Primary Constructor
C# 12: 컬렉션 식
C# 12: ref readonly 파라미터 (in)
C# 12: 람다식 디폴트 파라미터
C# 12: InlineArray 특성
C# 12: using alias 모든 타입
C# 12: Experimental, Interceptor
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# 13: \e (새 Escape Sequence)

C# 13에서 \e 라는 새로운 이스케이프(ESC) 시퀀스가 추가되었다.

\e는 ASCII Escape 문자를 표현한 것인데, 이전에는 아스키 \x1b (0x1b) 혹은 유니코드 \u001b (U+001b) 등을 써서 표현하였다. 그런데 \x1b 와 같이 표현하는 것은 약간의 문제를 야기할 수 있었는데, \x는 뒤에 오는 데이타에 따라 최대 4자리까지의 16진수를 가져올 수 있었다. 예를 들어, \x1b[31m 와 같이 쓰면, 원래 의도는 0x1b, '[', '3', '1', 'm' 와 같이 5개의 문자로 해석되어야 하는데, 실제로는 \x1b[31m 전체가 (C/C++의 전통에 따라 '['과 'm'을 생략하고) 0x1b31과 같이 하나의 16진수로 해석되어 버리는 문제가 있었다.

따라서 이러한 혼돈을 피하기 위해 C# 13에서는 \e 라는 별도의 이스케이프 시퀀스를 도입하여, \e는 항상 ASCII Escape 문자 (0x1b)로 해석되도록 하였다.

아래는 C# 13의 \e ANSI Escape 시퀀스를 사용한 예제인데, 콘솔에서 텍스트 색상을 변경하는 ANSI Escape 시퀀스를 표현한 것이다. 많은 콘솔 터미널 (Windows Terminal, macOS Terminal, Linux bash 등)은 ANSI Escape Code라는 제어 문자를 특별하게 해석하는데, 예를 들어 \e [ 31 m 은 텍스트 색상을 빨간색으로 바꾸는 시퀀스이다.

몇가지 색성 코드는 다음과 같다: \e[30m (검정), \e[31m (빨강), \e[32m (초록), \e[33m (노랑), \e[34m (파랑), \e[35m (보라), \e[36m (청록), \e[37m (흰색).


예제

public class Program
{
    public static void Main()
    {
        string esc = "\e";

        // ANSI 이스케이프 시퀀스를 사용하여 텍스트 색상을 변경
        // \e[31m은 빨간색 텍스트를 나타내고, \e[0m은 색상 리셋으로 원래 색상으로 복원함.

        // 콘솔에 빨간색 "RED" 텍스트를 출력        
        Console.WriteLine($"{esc}[31mRED{esc}[0m"); 

        // 콘솔에 파랜색 텍스트를 출력
        Console.WriteLine($"{esc}[34m BLUE {esc}[0m"); 
    }
}



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