etc./StackOverFlow

C#의 올바른 버전 번호는 무엇입니까?

청렴결백한 만능 재주꾼 2021. 11. 11. 07:58
반응형

질문자 :Community Wiki


C#의 올바른 버전 번호는 무엇입니까? 언제 나온거야? C# 3.5에 대한 답변을 찾을 수 없는 이유는 무엇입니까?

이 질문은 주로 잘못된 버전 번호(예: C# 3.5 )를 사용하여 답변을 검색하는 사람들을 돕기 위한 것입니다. 잘못된 버전 번호로 답을 찾지 못한 사람 이 이 질문을 찾은 다음 올바른 버전 번호로 다시 검색하기를 바랍니다.



C# 언어 버전 기록:

이 글을 쓰는 시점에 알려진 C# 버전은 다음과 같습니다.

OP의 질문에 대한 답변:

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# 언어 버전에 추가된 기능 . 향후 및 최근에 구현된 언어 기능을 추적하는 페이지 도 있습니다.


Community Wiki

이것은 여기에 있는 대부분의 답변과 동일하지만 쉽게 표로 정리되어 있으며 완전성을 위해 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월

.NET Core 이후 버전

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 릴리스 주기


참고: .NET 개발은 요즘 VS와 거의 독립적이며 각각의 버전 간에 상관 관계가 없습니다.
자세한 내용은 " .NET Framework 버전 및 종속성 "을 참조하십시오.


Community Wiki

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 구문과 기능을 지원한다는 것을 알 수 있습니다.


Community Wiki


Community Wiki

버전 언어 사양 마이크로소프트 컴파일러
C# 1.0 / 1.2 2001년 12월 ? /2003 ? 2002년 1월 ?
C# 2.0 2005년 9월 2005년 11월 ?
C# 3.0 2006년 5월 2006년 11월 ?
C# 4.0 2009년 3월(초안) 2010년 4월 ?
C# 5.0 2012년 8월 .NET 4.5와 함께 출시
C# 6.0 .NET 4.6 2015와 함께 출시됨
C# 7.0 .NET 4.7 2017과 함께 출시됨
C# 8.0 .NET 4.8 2019와 함께 출시됨

Community Wiki

이 표에 있는 대부분의 버전을 요약했습니다. 누락된 유일한 것은 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)은 언제 출시될 예정입니까?

버전


Community Wiki

여기 에서 최신 C# 버전을 확인할 수 있습니다.C# 버전


Community Wiki

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은 다음에 해당합니다(또는 더 정확하게는 대상으로 지정할 수 있음).


Community Wiki

C# 1.0 - 비주얼 스튜디오 .NET 2002

  • 클래스
  • 구조체
  • 인터페이스
  • 이벤트
  • 속성
  • 대의원
  • 표현식
  • 진술
  • 속성
  • 리터럴

C# 1.2 - 비주얼 스튜디오 .NET 2003

  • foreach에 폐기
  • foreach over 문자열 전문화
  • C# 2 - 비주얼 스튜디오 2005
  • 제네릭
  • 부분 유형
  • 익명 방법
  • 반복자
  • 널 입력 가능 유형
  • Getter/setter 별도의 접근성
  • 메서드 그룹 변환(대리인)
  • 정적 클래스
  • 대리인 추론

C# 3 - 비주얼 스튜디오 2008

  • 암시적으로 유형이 지정된 지역 변수
  • 개체 및 컬렉션 이니셜라이저
  • 자동 구현 속성
  • 익명 유형
  • 확장 방법
  • 쿼리 표현식
  • 람다 표현식
  • 표현식 트리
  • 부분 방법

C# 4 - 비주얼 스튜디오 2010

  • 동적 바인딩
  • 명명된 인수 및 선택적 인수
  • 일반 대리자 및 인터페이스에 대한 공분산 및 대조 분산
  • 임베디드 interop 유형("NoPIA")

C# 5 - 비주얼 스튜디오 2012

  • 비동기 메서드
  • 발신자 정보 속성

C# 6 - 비주얼 스튜디오 2015

  • 사양 초안 온라인
  • 서비스로서의 컴파일러(Roslyn)
  • 정적 형식 멤버를 네임스페이스로 가져오기
  • 예외 필터
  • catch/finally 블록에서 대기
  • 자동 속성 이니셜라이저
  • getter 전용 속성의 기본값
  • 익스프레션 바디 멤버
  • 널 전파자(널 조건부 연산자, 간결한 널 검사)
  • 문자열 보간
  • nameof 연산자
  • 사전 이니셜라이저

C# 7.0 - 비주얼 스튜디오 2017

  • 출력 변수
  • 패턴 매칭
  • 튜플
  • 해체
  • 버리다
  • 로컬 함수
  • 이진 리터럴
  • 숫자 구분 기호
  • 참조 반환 및 지역 주민
  • 일반화된 비동기 반환 유형
  • 더 많은 표현 바디 멤버
  • 던지기 표현식

C# 7.1 - Visual Studio 2017 버전 15.3

  • 비동기 메인
  • 기본 표현식
  • 참조 어셈블리
  • 유추된 튜플 요소 이름
  • 제네릭을 사용한 패턴 일치

C# 7.2 - Visual Studio 2017 버전 15.5

  • 스팬 및 참조 유사 유형
  • 매개변수 및 읽기 전용 참조
  • 참조 조건부
  • 후행이 아닌 명명된 인수
  • 개인 보호 접근성
  • 기본 지정자 뒤의 숫자 구분 기호

C# 7.3 - Visual Studio 2017 버전 15.7

  • System.Enum, System.Delegate 및 관리되지 않는 제약 조건.
  • 참조 로컬 재할당: 이제 참조 할당 연산자(= ref)를 사용하여 참조 로컬 및 참조 매개변수를 재할당할 수 있습니다.
  • Stackalloc 이니셜라이저: 이제 스택 할당 배열을 초기화할 수 있습니다(예: Span x = stackalloc[] { 1, 2, 3 };).
  • 이동식 고정 버퍼 인덱싱: 고정 버퍼를 먼저 고정하지 않고 인덱싱할 수 있습니다.
  • 사용자 지정 고정 문: 적절한 GetPinnableReference를 구현하는 유형을 고정 문에서 사용할 수 있습니다.
  • 개선된 과부하 후보: 일부 과부하 해결 후보는 조기에 배제되어 모호성을 줄일 수 있습니다.
  • 이니셜라이저 및 쿼리의 표현식 변수: out var 및 패턴 변수와 같은 표현식 변수는 필드 이니셜라이저, 생성자 이니셜라이저 및 LINQ 쿼리에서 허용됩니다.
  • 튜플 비교: 이제 튜플을 == 및 !=와 비교할 수 있습니다.
  • 지원 필드의 속성: 자동 구현 속성의 [필드: …] 속성이 지원 필드를 대상으로 하도록 허용합니다.

C# 8.0 - .NET Core 3.0 및 Visual Studio 2019 버전 16.3

  • Nullable 참조 유형: API에서 ?, notnull 제약 조건 및 주석 속성을 사용하여 참조 유형에 대한 null 허용 여부 의도를 표현하면 컴파일러에서 이를 사용하여 역참조되거나 부적합한 API로 전달되는 가능한 null 값을 감지합니다.
  • 기본 인터페이스 멤버: 인터페이스는 이제 기본 구현이 있는 멤버와 상태(즉, 필드 없음)를 제외한 정적/개인/보호/내부 멤버를 가질 수 있습니다.
  • 재귀 패턴: 위치 및 속성 패턴을 사용하면 객체에 대해 더 깊이 테스트할 수 있으며 스위치 표현식을 사용하면 여러 패턴을 테스트하고 해당 결과를 간결하게 생성할 수 있습니다.
  • 비동기 스트림: await foreach 및 IAsyncEnumerable 컬렉션 및 IAsyncDisposable 리소스의 비동기 열거 및 폐기를 허용하고 async-iterator 메서드를 사용하면 이러한 비동기 스트림을 편리하게 구현할 수 있습니다.
  • 향상된 사용: using 선언이 암시적 범위와 함께 추가되고 using 문 및 선언을 통해 패턴을 사용하여 ref 구조체를 처리할 수 있습니다.
  • 범위 및 인덱스: i..j 구문을 사용하면 System.Range 인스턴스를 생성할 수 있고 ^k 구문을 사용하면 System.Index 인스턴스를 생성할 수 있으며 컬렉션을 인덱싱/슬라이스하는 데 사용할 수 있습니다.
  • Null 병합 할당: ??=는 값이 null일 때 조건부 할당을 허용합니다.
  • 정적 로컬 함수: 정적으로 수정된 로컬 함수는 이 또는 로컬 변수를 캡처할 수 없으며 로컬 함수 매개변수는 이제 상위 범위에서 로컬을 섀도우합니다.
  • 관리되지 않는 일반 구조체: 관리되지 않는 필드만 있는 일반 구조체 유형은 이제 관리되지 않는 것으로 간주됩니다(즉, 관리되지 않는 제약 조건을 충족함).
  • 읽기 전용 멤버: 이제 개별 멤버를 읽기 전용으로 표시하여 인스턴스 상태를 수정하지 않음을 표시하고 적용할 수 있습니다.
  • 중첩 컨텍스트의 Stackalloc: 이제 더 많은 표현식 컨텍스트에서 stackalloc 표현식이 허용됩니다.
  • 대체 보간된 축자 문자열: @$"..." 문자열은 $@"..."처럼 보간된 축자 문자열로 인식됩니다.
  • 속성 접근자에서 사용되지 않음: 이제 속성 접근자를 사용되지 않는 것으로 개별적으로 표시할 수 있습니다.
  • 제한되지 않은 유형 매개변수에서 허용 t가 null입니다.

[출처]: https://github.com/dotnet/csharplang/blob/master/Language-Version-History.md


Community Wiki

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

  • 동적 바인딩(후기 바인딩)
  • 명명된 인수 및 선택적 인수
  • 일반 공변 및 반공
  • 임베디드 interop 유형

C# 5.0 .NET 프레임워크 4.5 비주얼 스튜디오 2012/2013

  • 비동기 기능
  • 발신자 정보

C# 6.0 .NET 프레임워크 4.6 비주얼 스튜디오 2013/2015

  • 표현식 바디 메서드
  • 자동 속성 이니셜라이저
  • 식의 이름
  • 기본 생성자
  • catch 블록에서 대기
  • 예외 필터
  • 문자열 보간

C# 7.0 .NET 코어 2.0 비주얼 스튜디오 2017

  • 출력 변수
  • 튜플
  • 버리다
  • 패턴 매칭
  • 로컬 기능
  • 일반화된 비동기 반환 유형
  • 숫자 리터럴 구문 개선

C# 8.0 .NET 코어 3.0 비주얼 스튜디오 2019

  • 읽기 전용 회원
  • 기본 인터페이스 메서드
  • 패턴 일치 개선 사항:
    • 표현식 전환
    • 속성 패턴
    • 튜플 패턴
    • 위치 패턴
  • 선언 사용
  • 정적 로컬 함수
  • 일회용 참조 구조체
  • Null 허용 참조 유형
  • 비동기 스트림
  • 비동기식 일회용
  • 지수 및 범위
  • Null 병합 할당
  • 관리되지 않는 생성 유형
  • 중첩 표현식의 Stackalloc
  • 보간된 축자 문자열의 향상

Community Wiki

C# 8.0은 C#의 최신 버전입니다. .NET Core 3.x 이상 버전에서만 지원됩니다. 대부분의 최신 기능에는 .NET Core 3.x에 도입된 라이브러리 및 런타임 기능이 필요합니다.

다음 표에는 버전과 기본 C# 버전이 포함된 대상 프레임워크가 나와 있습니다.

Target 프레임워크가 있는 C# 언어 버전

소스 - C# 언어 버전 관리


Community Wiki

주요 언어 기능과 함께 .NET, C#, CLR 및 Visual Studio 버전의 간결한 역사를 찾고 있었습니다.

한 곳에서 필요한 모든 정보를 포함하는 최신 표를 찾을 수 없었기 때문에 Microsoft 문서의 세부 정보를 내가 찾고 있는 내용이 포함된 간결한 표를 유지하려고 했던 내용에 병합했습니다.

여기에서 사용할 수 있습니다: https://mantinband.github.io/dotnet-shmotnet/

실수나 누락된 정보가 있을 수 있으므로 언제든지 문제를 열거나 여기에서 기여해 주세요: https://github.com/mantinband/dotnet-shmotnet

살짝 엿보기:

여기에 이미지 설명 입력


Community Wiki

출처 : http:www.stackoverflow.com/questions/247621/what-are-the-correct-version-numbers-for-c

반응형