C#의 올바른 버전 번호는 무엇입니까? 언제 나온거야? C# 3.5에 대한 답변을 찾을 수 없는 이유는 무엇입니까?
이 질문은 주로 잘못된 버전 번호(예: C# 3.5 )를 사용하여 답변을 검색하는 사람들을 돕기 위한 것입니다. 잘못된 버전 번호로 답을 찾지 못한 사람 이 이 질문을 찾은 다음 올바른 버전 번호로 다시 검색하기를 바랍니다.
질문자 :Community Wiki
C#의 올바른 버전 번호는 무엇입니까? 언제 나온거야? C# 3.5에 대한 답변을 찾을 수 없는 이유는 무엇입니까?
이 질문은 주로 잘못된 버전 번호(예: C# 3.5 )를 사용하여 답변을 검색하는 사람들을 돕기 위한 것입니다. 잘못된 버전 번호로 답을 찾지 못한 사람 이 이 질문을 찾은 다음 올바른 버전 번호로 다시 검색하기를 바랍니다.
이 글을 쓰는 시점에 알려진 C# 버전은 다음과 같습니다.
IDisposable
을 구현한 IEnumerator
Dispose
를 호출하는 첫 번째 버전입니다. 몇 가지 다른 작은 기능.var
) 및 쿼리 식dynamic
), 대리자 및 인터페이스 일반 변형, 더 많은 COM 지원, 명명된 인수, 튜플 데이터 유형 및 선택적 매개변수catch
await
하고 finally
, 컬렉션 이니셜라이저에 메서드를 Add
out
매개변수 선언 , 로컬 함수 , 이진 리터럴, 숫자 구분 기호 및 임의의 비동기 반환 .unmanaged
제네릭 형식 제약 조건 . ref
재할당. 안전하지 않은 개선 사항: stackalloc
초기화, 고정 fixed
버퍼, 사용자 지정 fixed
문. 오버로딩 해상도가 향상되었습니다. 이니셜라이저 및 쿼리의 표현식 변수. ==
및 !=
는 튜플에 대해 정의됩니다. 이제 자동 속성의 지원 필드를 속성으로 타겟팅할 수 있습니다.new
표현식) , 대상 유형 ??
및 ?
) 및 공변 반환. 사소한 기능: ref
및 partial
수정자의 순서 완화, 매개변수 null 검사, 람다 폐기 매개변수, 기본 int
, 로컬 함수의 속성, 함수 포인터, 정적 람다, 확장 GetEnumerator
, 모듈 이니셜라이저 및 부분 확장.C#의 올바른 버전 번호는 무엇입니까? 언제 나온거야? C# 3.5에 대한 답변을 찾을 수 없는 이유는 무엇입니까?
C# 3.5와 같은 것은 없습니다. 여기서 혼란의 원인은 C# 3.0이 .NET 3.5에 있기 때문입니다. 그러나 언어와 프레임워크는 독립적으로 버전이 지정됩니다. CLR은 서비스 팩에도 불구하고 .NET 2.0에서 3.5까지의 버전 2.0, CLR 4.0을 도입하는 .NET 4입니다. .NET 4.5의 CLR에는 다양한 개선 사항이 있지만 버전 관리는 불분명합니다. 일부 지역에서는 CLR 4.5로 지칭될 수 있지만( 예를 들어 이 MSDN 페이지 에서는 이를 참조하는 데 사용됨) Environment.Version
속성은 여전히 4.0.xxx를 보고합니다.
2017년 5월 3일부로 C# 언어 팀은 GitHub 리포지토리에 C# 버전 및 기능에 대한 기록을 만들었습니다. C# 언어 버전에 추가된 기능 . 향후 및 최근에 구현된 언어 기능을 추적하는 페이지 도 있습니다.
이것은 여기에 있는 대부분의 답변과 동일하지만 쉽게 표로 정리되어 있으며 완전성을 위해 Visual Studio 및 .NET 버전이 있습니다.
C# 버전 | VS 버전 | .NET 버전 | CLR 버전 | 출시일 |
---|---|---|---|---|
1.0 | 2002년 | 1.0 | 1.0 | 2002년 2월 |
1.2 | 2003년 | 1.1 | 1.1 | 2003년 4월 |
2.0 | 2005년 | 2.0 | 2.0 | 2005년 11월 |
3.0 | 2.0 | 2006년 11월 | ||
3.0 | 2008년 | 3.5 | 2.0 | 2007년 11월 |
4.0 | 2010년 | 4.0 | 4 | 2010년 4월 |
5.0 | 2012년 | 4.5 | 4 | 2012년 8월 |
5.0 | 2013년 | 4.5.1 | 4 | 2013년 10월 |
4.5.2 | 4 | 2014년 5월 | ||
6.0 | 2015년 | 4.6 | 4 | 2015년 7월 |
4.6.1 | 4 | 2015년 11월 | ||
4.6.2 | 4 | 2016년 8월 | ||
7.0 | 2017년 | 2017년 3월 | ||
4.7 | 4 | 2017년 5월 | ||
7.1 | 2017(v15.3) | 2017년 8월 | ||
4.7.1 | 4 | 2017년 10월 | ||
7.2 | 2017(v15.5) | 2017년 12월 | ||
4.7.2 | 4 | 2018년 4월 | ||
7.3 | 2017(v15.7) | 2018년 5월 | ||
8.0 | 2019년 | 4.8 | 4 | 2019년 4월 |
9.0 | 2019(v16.8) | 5.0* | ** | 2020년 11월 |
C# 버전 | VS 버전 | .NET 버전 | 출시일 | 지원 종료 |
---|---|---|---|---|
2015 업데이트 3 | .NET 코어 1.0 | 2016년 6월 | 2019년 6월 | |
.NET 코어 1.1 | 2016년 11월 | 2019년 6월 | ||
7.1 | 2017(v15.3) | .NET 코어 2.0 | 2017년 8월 | 2018년 10월 |
7.3 | 2017(v15.7) | .NET 코어 2.1 | 2018년 5월 | 2021년 8월 |
.NET 코어 2.2 | 2018년 12월 | 2019년 12월 | ||
2019(v16.3) | .NET 코어 3.0 | 2019년 9월 | 2020년 3월 | |
2019(v16.4) | .NET 코어 3.1 | 2019년 12월 | 2022년 12월 | |
9.0 | 2019(v16.8) | .NET 5 | 2020년 11월 | 2022년 2월 |
.NET 6 | 2021년 11월 | 2024년 11월 | ||
.NET 7 | 2022년 11월 | 2023년 2월 | ||
.NET 8 | 2023년 11월 | 2026년 11월 |
* - .NET 5.0은 .NET Framework의 최신 버전이 아니라 .NET Core 3입니다. .NET 5.0부터 .NET 전체 프레임워크의 최신 버전은 없습니다.
** - .NET Core에 대한 별도의 CLR(CoreCLR) 버전이 없습니다. .NET Core 버전이 무엇이든 CoreCLR 버전입니다. 그래서 언급하지 않습니다.
참고: .NET 개발은 요즘 VS와 거의 독립적이며 각각의 버전 간에 상관 관계가 없습니다.
자세한 내용은 " .NET Framework 버전 및 종속성 "을 참조하십시오.
C#의 버전 번호를 다룰 때 가장 큰 문제는 Visual Studio와 .NET Framework 간의 동기화된 릴리스로 인해 나타나는 .NET Framework 버전과 관련이 없다는 사실입니다.
C# 버전은 실제로 프레임워크가 아니라 컴파일러에 바인딩됩니다. 예를 들어 Visual Studio 2008에서는 C# 3.0을 작성하고 .NET Framework 2.0, 3.0 및 3.5를 대상으로 지정할 수 있습니다. C# 3.0 명명법은 ANSI C89, C90 및 C99 가 C의 코드 구문 및 기능을 설명하는 것과 동일한 방식으로 코드 구문 및 지원되는 기능의 버전을 설명합니다.
Mono 를 살펴보면 Mono 2.0(대부분 ECMA 사양에서 구현된 .NET Framework 버전 2.0)이 C# 3.0 구문과 기능을 지원한다는 것을 알 수 있습니다.
Visual Studio .NET이 포함된 C# 1.0
Visual Studio 2005가 포함된 C# 2.0
Visual Studio 2008이 포함된 C# 3.0
Visual Studio 2010이 포함된 C# 4.0
Visual Studio 2012가 포함된 C# 5.0
Visual Studio 2015가 포함된 C# 6.0
Visual Studio 2017이 포함된 C# 7.0
Visual Studio 2019가 포함된 C# 8.0
Visual Studio 2019가 포함된 C# 9.0
이 표에 있는 대부분의 버전을 요약했습니다. 누락된 유일한 것은 ASP.NET Core 버전이어야 합니다. 다른 버전의 ASP.NET MVC도 추가했습니다.
ASP.NET 5는 ASP.NET Core 1.0으로 브랜드가 변경되었으며 ASP.NET MVC 6은 ASP.NET Core MVC 1.0.0으로 브랜드가 변경되었습니다. 나는 이 변화가 2016년 1월경에 일어났다고 생각합니다.
ASP.NET 5 RC1의 출시 날짜를 표에 포함했지만 정확한 출시 날짜를 찾을 수 없기 때문에 아직 ASP.NET Core 1.0 및 기타 핵심 버전을 포함하지 않았습니다. ASP.NET Core에 대한 릴리스 날짜에 대한 자세한 내용은 여기에서 확인할 수 있습니다. ASP.NET Core 1.0(ASP.NET 5/vNext)은 언제 출시될 예정입니까?
여기 에서 최신 C# 버전을 확인할 수 있습니다.
MSDN 기사 "What's New in the C# 2.0 Language and Compiler" 와 "What's New in the Visual C# 2005 "를 비교하면 컴파일러의 버전 번호에 따라 "C# major_version.minor_version"이 만들어졌음을 유추할 수 있습니다.
.NET 1.1 및 VS 2003에 해당 하고 Visual C# .NET 2003 이라고도 하는 C# 1.2가 있습니다.
그러나 Microsoft는 부 버전(점 뒤) 번호를 증가시키거나 0
이외의 다른 번호를 갖기 위해 중단했습니다. .NET 3.5에 해당하는 C#은 msdn.microsoft.com에서 "Visual C# 2008 서비스 팩 1" 로 명명됩니다.
두 가지 병렬 이름 지정이 있습니다. 주요 .NET/컴파일러 버전 번호 지정 및 Visual Studio 번호 지정입니다.
C# 2.0 은 Visual C# 2005 의 동의어입니다.
C# 3.0은 다음에 해당합니다(또는 더 정확하게는 대상으로 지정할 수 있음).
[출처]: https://github.com/dotnet/csharplang/blob/master/Language-Version-History.md
Version .NET Framework Visual Studio Important Features
C# 1.0 .NET 프레임워크 1.0/1.1 비주얼 스튜디오 .NET 2002
C# 2.0 .NET 프레임워크 2.0 비주얼 스튜디오 2005
C# 3.0 .NET 프레임워크 3.0\3.5 Visual Studio 2008
C# 4.0 .NET 프레임워크 4.0 비주얼 스튜디오 2010
C# 5.0 .NET 프레임워크 4.5 비주얼 스튜디오 2012/2013
C# 6.0 .NET 프레임워크 4.6 비주얼 스튜디오 2013/2015
C# 7.0 .NET 코어 2.0 비주얼 스튜디오 2017
C# 8.0 .NET 코어 3.0 비주얼 스튜디오 2019
C# 8.0은 C#의 최신 버전입니다. .NET Core 3.x 이상 버전에서만 지원됩니다. 대부분의 최신 기능에는 .NET Core 3.x에 도입된 라이브러리 및 런타임 기능이 필요합니다.
다음 표에는 버전과 기본 C# 버전이 포함된 대상 프레임워크가 나와 있습니다.
주요 언어 기능과 함께 .NET, C#, CLR 및 Visual Studio 버전의 간결한 역사를 찾고 있었습니다.
한 곳에서 필요한 모든 정보를 포함하는 최신 표를 찾을 수 없었기 때문에 Microsoft 문서의 세부 정보를 내가 찾고 있는 내용이 포함된 간결한 표를 유지하려고 했던 내용에 병합했습니다.
여기에서 사용할 수 있습니다: https://mantinband.github.io/dotnet-shmotnet/
실수나 누락된 정보가 있을 수 있으므로 언제든지 문제를 열거나 여기에서 기여해 주세요: https://github.com/mantinband/dotnet-shmotnet
살짝 엿보기:
출처 : http:www.stackoverflow.com/questions/247621/what-are-the-correct-version-numbers-for-c
두 JavaScript 객체의 속성을 동적으로 병합하려면 어떻게 해야 합니까? (0) | 2021.11.11 |
---|---|
JavaScript 객체의 길이 (0) | 2021.11.11 |
sleep()의 JavaScript 버전은 무엇입니까? (0) | 2021.11.11 |
Python에서 수동으로 예외 발생(던지기) (0) | 2021.11.11 |
Flash CS4가 놓기를 거부합니다. (0) | 2021.11.11 |