다음을 통해 공유


C# 언어 버전 구성

Warning

LangVersion 요소를 latest로 설정하는 것은 권장하지 않습니다. latest 설정은 설치된 컴파일러가 최신 버전을 사용한다는 의미입니다. 이는 머신마다 변경될 수 있어 빌드를 불안정하게 만들 수 있습니다. 또한 현재 SDK에 포함되지 않은 런타임 또는 라이브러리 기능이 필요할 수 있는 언어 기능도 지원합니다.

C# 버전을 명시적으로 지정해야 하는 경우 다음과 같은 여러 가지 방법으로 수행할 수 있습니다.

프로젝트 속성 페이지에서 Visual Studio의 언어 버전을 확인할 수 있습니다. 빌드 탭 아래의 고급 창에 선택한 버전이 표시됩니다.

현재 사용 중인 언어 버전을 확인하려면 코드에 #error version(대/소문자 구분)을 입력합니다. 이렇게 하면 컴파일러가 사용 중인 컴파일러 버전 및 현재 선택된 언어 버전을 포함하는 메시지가 있는 컴파일러 오류 CS8304를 보고합니다. 자세한 내용은 #error(C# 참조)를 참조하세요.

프로젝트 파일 편집

프로젝트 파일에서 언어 버전을 설정할 수 있습니다. 예를 들어 미리 보기 기능에 명시적으로 액세스하려는 경우 다음과 같은 요소를 추가합니다.

<PropertyGroup>
   <LangVersion>preview</LangVersion>
</PropertyGroup>

preview는 컴파일러에서 지원하는 사용 가능한 최신 미리 보기 C# 언어를 사용합니다.

여러 프로젝트 구성

여러 프로젝트를 구성하려면 일반적으로 솔루션 디렉터리에 <LangVersion> 요소가 포함된 Directory.Build.props 파일을 만들면 됩니다. Directory.Build.props 파일에 다음 설정을 추가합니다.

<Project>
 <PropertyGroup>
   <LangVersion>preview</LangVersion>
 </PropertyGroup>
</Project>

이제 해당 파일을 포함하는 디렉터리의 모든 하위 디렉터리에 있는 빌드는 미리 보기 C# 버전을 사용합니다. 자세한 내용은 빌드 사용자 지정을 참조하세요.

C# 언어 버전 참조

모든 표는 현재 C# 언어 버전을 보여줍니다. 이전 컴파일러는 모든 값을 이해하지 못할 수도 있습니다. 최신 .NET SDK를 설치하면 나열된 모든 항목에 액세스할 수 있습니다.

의미
preview 컴파일러가 최신 미리 보기 버전의 유효한 언어 구문을 모두 허용합니다.
latest 컴파일러가 최신 릴리스 버전(부 버전 포함)의 구문을 허용합니다.
latestMajor
또는 default
컴파일러가 최신 릴리스 주 버전의 구문을 허용합니다.
13.0 컴파일러는 C# 13 이하에 포함된 구문만 허용합니다.
12.0 컴파일러는 C# 12 이하에 포함된 구문만 허용합니다.
11.0 컴파일러는 C# 11 이하에 포함된 구문만 허용합니다.
10.0 컴파일러는 C# 10 이하에 포함된 구문만 허용합니다.
9.0 컴파일러는 C# 9 이하에 포함된 구문만 허용합니다.
8.0 컴파일러는 C# 8.0 이하에 포함된 구문만 허용합니다.
7.3 컴파일러는 C# 7.3 이하에 포함된 구문만 허용합니다.
7.2 컴파일러는 C# 7.2 이하에 포함된 구문만 허용합니다.
7.1 컴파일러는 C# 7.1 이하에 포함된 구문만 허용합니다.
7 컴파일러는 C# 7.0 이하에 포함된 구문만 허용합니다.
6 컴파일러는 C# 6.0 이하에 포함된 구문만 허용합니다.
5 컴파일러는 C# 5.0 이하에 포함된 구문만 허용합니다.
4 컴파일러는 C# 4.0 이하에 포함된 구문만 허용합니다.
3 컴파일러는 C# 3.0 이하에 포함된 구문만 허용합니다.
ISO-2
또는 2
컴파일러는 ISO/IEC 23270:2006 C#(2.0)에 포함된 구문만 허용합니다.
ISO-1
또는 1
컴파일러는 ISO/IEC 23270:2003 C#(1.0/1.2)에 포함된 구문만 허용합니다.