C# 13의 새로운 기능

C# 13에는 다음과 같은 새로운 기능이 포함되어 있습니다. 최신 Visual Studio 2022 버전 또는 .NET 9 미리 보기 SDK사용하여 이러한 기능을 사용해 볼 수 있습니다.

C# 13은 .NET 9에서 지원됩니다. 자세한 내용은 C# 언어 버전 관리를 참조하세요.

.NET 다운로드 페이지에서 최신 .NET 9 미리 보기 SDK를 다운로드할 수 있습니다. .NET 9 미리 보기 SDK를 포함하는 Visual Studio 2022 - 미리 보기를 다운로드할 수도 있습니다.

새 기능은 공개 미리 보기 릴리스에서 사용할 수 있는 경우 "C#의 새로운 기능" 페이지에 추가됩니다. roslyn 기능 상태 페이지의 작업 집합 섹션은 예정된 기능이 기본 분기에 병합될 때 추적됩니다.

참고 항목

이러한 기능에 대한 사용자의 피드백을 환영합니다. 이러한 새로운 기능과 관련된 문제를 발견하면 dotnet/roslyn 리포지토리에서 새 문제를 만듭니다.

새 이스케이프 시퀀스

문자 유니코드에 대한 문자 리터럴 이스케이프 시퀀스로 사용할 \e 수 있습니다.ESCAPEU+001B 이전에는 사용 \u001b 했거나 \x1b. 다음 1b 문자가 유효한 16진수 숫자인 경우 해당 문자가 이스케이프 시퀀스의 일부가 되었기 때문에 사용하지 \x1b 않는 것이 좋습니다.

메서드 그룹 자연 형식

이 기능은 메서드 그룹과 관련된 오버로드 해상도를 약간 최적화합니다. 이전 동작은 컴파일러가 메서드 그룹에 대한 후보 메서드의 전체 집합을 생성하는 것이었습니다. 자연 형식이 필요한 경우 자연 형식은 후보 메서드의 전체 집합에서 결정되었습니다.

새 동작은 각 범위에서 후보 메서드 집합을 정리하여 적용할 수 없는 후보 메서드를 제거하는 것입니다. 일반적으로 이러한 메서드는 잘못된 심각도가 있는 제네릭 메서드이거나 충족되지 않는 제약 조건입니다. 후보 메서드를 찾을 수 없는 경우에만 프로세스가 다음 외부 범위로 계속 진행됩니다. 이 프로세스는 오버로드 확인에 대한 일반 알고리즘을 더 밀접하게 따릅니다. 지정된 범위에서 찾은 모든 후보 메서드가 일치하지 않으면 메서드 그룹에 자연 형식이 없습니다.

제안 사양의 변경 내용에 대한 세부 정보를 읽을 수 있습니다.

암시적 인덱스 액세스

이제 개체 이니셜라이저 식에서 암시적 "from the end" 인덱스 연산 ^자가 허용됩니다. 예를 들어 이제 다음 코드와 같이 개체 이니셜라이저에서 배열을 초기화할 수 있습니다.

var v = new S()
{
    buffer =
    {
        [^1] = 0,
        [^2] = 1,
        [^3] = 2,
        [^4] = 3,
        [^5] = 4,
        [^6] = 5,
        [^7] = 6,
        [^8] = 7,
        [^9] = 8,
        [^10] = 9
    }
};

C# 13 ^ 이전 버전에서는 개체 이니셜라이저에서 연산자를 사용할 수 없습니다. 앞에서 요소를 인덱싱해야 합니다.

참고 항목