본문 바로가기

Programming/C#

C# 버전

반응형

지금 나는 어떤 버전의 C#을 쓰고 있을까?

 

 

최신 C# 컴파일러는 프로젝트의 Target Framework를 기반으로 기본 버전을 결정한다. (Visual Studio 2019 이상)

즉, 명시적으로 바꾸지 않았다면 현재 프로젝트의 Target Framework에 따라 C# 버전이 결정된다.

Target Framework Version C# Default Version
.NET 6.x C# 10.0
.NET 5.x C# 9.0
.NET Core 3.x C# 8.0
.NET Core  2.x C# 7.3
.NET Standard 2.1 C# 8.0
.NET Standard 2.0 C# 7.3
.NET Standard 1.x C# 7.3
.NET Framework All C# 7.3

 

C# 버전을 명시적으로 설정하고 싶은 경우 아래와 같이 csproj 파일에 <LangVersion> 요소를 추가해야 한다.

(UI상에서의 변경은 지원하지 않는다.)

<PropertyGroup>
   <LangVersion>9.0</LangVersion>
</PropertyGroup>

 

+) Visual Studio 2017은 csproj파일에 자동으로 <LangVersion>latest</LangVersion> 추가한다.

(Visual Studio 2017이 지원하는 최신 버전이 C# 7.0 이므로 C# 7.0을 사용한다.)

 

이때 Visual Studio를 2019로 업그레이드해도 여전히 <LangVersion>latest</LangVersion>요소가 남아있으므로

Target Framework와 관계없이 릴리즈 된 최신 버전의 C#을 사용하게 설정되므로 주의해야 한다.

(해당 요소를 지워주면 컴파일러가 Target framework에 따라 적절한 버전을 자동으로 설정한다.)

 

ref : https://docs.microsoft.com/ko-kr/dotnet/csharp/language-reference/configure-language-version

 

반응형