반응형
지금 나는 어떤 버전의 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
반응형