tipos - ¿Cuáles son los números de versión correctos para C#?
tipos de datos en c# pdf (9)
¿Cuáles son los números de versión correctos para C #? ¿Qué salió cuando? ¿Por qué no puedo encontrar respuestas sobre C # 3.5 ?
Esta pregunta es principalmente para ayudar a aquellos que están buscando una respuesta utilizando un número de versión incorrecto, por ejemplo, C # 3.5 . La esperanza es que cualquiera que no encuentre una respuesta con el número de versión incorrecto encuentre esta pregunta y luego busque nuevamente con el número de versión correcto.
Historial de versiones de lenguaje C #:
Estas son las versiones de C # conocidas al momento de escribir este artículo:
- C # 1.0 lanzado con .NET 1.0 y VS2002 (enero de 2002)
- C # 1.2 (extrañamente suficiente); lanzado con .NET 1.1 y VS2003 (abril de 2003). Primera versión para llamar a
Dispose
enIEnumerator
que implementóIDisposable
. Algunas otras pequeñas características. - C # 2.0 lanzado con .NET 2.0 y VS2005 (noviembre de 2005). Principales características nuevas: genéricos, métodos anónimos, tipos anulables, bloques de iteradores
- C # 3.0 lanzado con .NET 3.5 y VS2008 (noviembre de 2007). Principales características nuevas: expresiones lambda, métodos de extensión, árboles de expresiones, tipos anónimos, escritura implícita (
var
), expresiones de consulta - C # 4.0 lanzado con .NET 4 y VS2010 (abril de 2010). Principales características nuevas: vinculación tardía (
dynamic
), varianza genérica de delegado e interfaz, más compatibilidad con COM, argumentos con nombre, tipo de datos de tupla y parámetros opcionales - C # 5.0 lanzado con .NET 4.5 y VS2012 (agosto de 2012). Principales características : programación asíncrona, atributos de información del llamante. Cambio de ruptura: cierre de bucle variable .
- C # 6.0 lanzado con .NET 4.6 y VS2015 (julio de 2015). Implementado por Roslyn . Features : inicializadores para propiedades implementadas automáticamente, uso de directivas para importar miembros estáticos, filtros de excepción, inicializadores de elementos,
await
encatch
y,finally
, métodos de adición de extensión en inicializadores de colección. - C # 7.0 lanzado con .NET 4.7 y VS2017 (marzo de 2017) Nuevas características principales : tuples , locales de referencia y retorno de referencia , coincidencia de patrones (incluidas declaraciones de modificadores basadas en patrones), declaraciones de parámetros
out
línea , funciones locales , literales binarios, separadores de dígitos , Y devoluciones asíncronas arbitrarias . - C # 7.1 lanzado con VS2017 v15.3 (agosto de 2017) Nuevas características: async main , inferencia de nombre de miembro de la tupla , expresión predeterminada , coincidencia de patrones con genéricos .
- C # 7.2 lanzado con VS2017 v15.5 (noviembre de 2017) Nuevas características: modificador de acceso protegido privado , Span <T>, también conocido como puntero interior, también conocido como stackonly struct , todo lo demás .
- C # 7.3 lanzado con VS2017 v15.7 (mayo de 2018). Nuevas características: enumeración, delegado y restricciones de tipo genérico
unmanaged
.ref
reasignación. Mejoras inseguras: inicialización destackalloc
, buffersfixed
indexados sinstackalloc
, declaracionesfixed
personalizadas. Resolución de sobrecarga mejorada. Variables de expresión en inicializadores y consultas.==
y!=
definido para tuplas. Los campos de respaldo de las propiedades automáticas ahora pueden ser segmentados por atributos. - C # 8.0 actualmente en vista previa. Nuevas características esperadas : tipos de referencia no anulables ,
IAsyncEnumerable<T>
, rangos y métodos de interfaz predeterminados.
En respuesta a la pregunta del OP:
¿Cuáles son los números de versión correctos para C #? ¿Qué salió cuando? ¿Por qué no puedo encontrar respuestas sobre C # 3.5?
No existe tal cosa como C # 3.5: la causa de confusión aquí es que C # 3.0 está presente en .NET 3.5. Sin embargo, el lenguaje y el marco se versionan de forma independiente, al igual que el CLR, que se encuentra en la versión 2.0 para .NET 2.0 a 3.5, .NET 4 que introduce CLR 4.0, a pesar de los paquetes de servicio. El CLR en .NET 4.5 tiene varias mejoras, pero el control de versiones no está claro: en algunos lugares puede llamarse CLR 4.5 ( esta página de MSDN se usa para referirse de esa manera, por ejemplo), pero la propiedad Environment.Version
aún Informes 4.0.xxx.
Más información detallada sobre la relación entre el idioma, el tiempo de ejecución y las versiones del marco está disponible en el sitio de C # en profundidad . Esto incluye información sobre las características de C # 3.0 que puede usar cuando se dirige a .NET 2.0. (Si alguien quiere incluir todo el contenido en esta respuesta wiki, puede hacerlo).
A partir del 3 de mayo de 2017, el Equipo de lenguaje de C # creó un historial de versiones y características de C # en su repositorio de github: Funciones agregadas en las versiones de lenguaje de C # . También hay una página que hace un seguimiento de las características del lenguaje más recientes y recientemente implementadas .
Al comparar los artículos de MSDN "Novedades en el lenguaje y compilador de C # 2.0" y " Novedades en Visual C # 2005 ", es posible deducir que "C # major_version.minor_version" está acuñado de acuerdo con la numeración de la versión del compilador.
Hay un C # 1.2 correspondiente a .NET 1.1 y VS 2003 y también denominado Visual C # .NET 2003 .
Pero más adelante, Microsoft se detuvo para incrementar los números de la versión secundaria (después del punto) o para que no fueran cero, 0
. Aunque se debe tener en cuenta que C # correspondiente a .NET 3.5 se nombra en msdn.microsoft.com como "Visual C # 2008 Service Pack 1" .
Hay dos nombres paralelos: por .NET principal / numeración de versión del compilador y por numeración de Visual Studio.
C # 2.0 es un sinónimo de Visual C # 2005
C # 3.0 corresponde (o, más correctamente, puede apuntar) a:
- .NET 2.0 <==> Visual C # 2005
- .NET3.0 <==> Visual C # 2008
- .NET 3.5 <==> Visual C # 2008 Service Pack 1
El mayor problema al tratar con los números de versión de C # es el hecho de que no está vinculado a una versión de .NET Framework, que parece deberse a las versiones sincronizadas entre Visual Studio y .NET Framework.
La versión de C # está realmente vinculada al compilador, no al marco. Por ejemplo, en Visual Studio 2008 puede escribir C # 3.0 y apuntar a .NET Framework 2.0, 3.0 y 3.5. La nomenclatura C # 3.0 describe la versión de la sintaxis del código y las características admitidas de la misma manera que ANSI C89, C90, C99 describe la sintaxis del código / características para C.
Eche un vistazo a Mono y verá que Mono 2.0 (implementado principalmente con la versión 2.0 de .NET Framework a partir de las especificaciones de ECMA) es compatible con la sintaxis y las características de C # 3.0.
Esto es lo mismo que la mayoría de las respuestas aquí, pero tabularizado para mayor facilidad, y tiene versiones de Visual Studio y .NET para completar.
╔════════════╦════════════╦══════════════╦═════════════╦══════════════╗
║ C# version ║ VS version ║ .NET version ║ CLR version ║ Release date ║
╠════════════╬════════════╬══════════════╬═════════════╬══════════════╣
║ 1.0 ║ 2002 ║ 1.0 ║ 1.0 ║ Feb 2002 ║
║ 1.2 ║ 2003 ║ 1.1 ║ 1.1 ║ Apr 2003 ║
║ 2.0 ║ 2005 ║ 2.0 ║ 2.0 ║ Nov 2005 ║
║ ║ ║ 3.0 ║ 2.0 ║ Nov 2006 ║
║ 3.0 ║ 2008 ║ 3.5 ║ 2.0 ║ Nov 2007 ║
║ 4.0 ║ 2010 ║ 4.0 ║ 4 ║ Apr 2010 ║
║ 5.0 ║ 2012 ║ 4.5 ║ 4 ║ Aug 2012 ║
║ 5.0 ║ 2013 ║ 4.5.1 ║ 4 ║ Oct 2013 ║
║ ║ ║ 4.5.2 ║ 4 ║ May 2014 ║
║ 6.0 ║ 2015 ║ 4.6 ║ 4 ║ Jul 2015 ║
║ ║ ║ 4.6.1 ║ 4 ║ Nov 2015 ║
║ ║ ║ 4.6.2 ║ 4 ║ Aug 2016 ║
║ 7.0 ║ 2017 ║ ║ ║ Mar 2017 ║
║ ║ ║ 4.7 ║ 4 ║ May 2017 ║
║ 7.1 ║ 2017(v15.3)║ ║ ║ Aug 2017 ║
║ ║ ║ 4.7.1 ║ 4 ║ Oct 2017 ║
║ 7.2 ║ 2017(v15.5)║ ║ ║ Dec 2017 ║
║ ║ ║ 4.7.2 ║ 4 ║ Apr 2018 ║
║ 7.3 ║ 2017(v15.7)║ ║ ║ May 2018 ║
╚════════════╩════════════╩══════════════╩═════════════╩══════════════╝
Nota: el desarrollo de .NET es bastante independiente de VS en estos días, no hay correlación entre las versiones de cada uno. Consulte " Versiones y dependencias de .NET Framework " para obtener más información.
He resumido la mayoría de las versiones en esta tabla. Los únicos que faltan deben ser las versiones Core de ASP.NET. También he añadido diferentes versiones de ASP.NET MVC.
Tenga en cuenta que ASP.NET 5 ha sido rebautizado como ASP.NET Core 1.0 y ASP.NET MVC 6 ha sido rebautizado como ASP.NET Core MVC 1.0.0. Creo que este cambio ocurrió en algún momento alrededor de enero de 2016.
He incluido la fecha de lanzamiento de ASP.NET 5 RC1 en la tabla, pero aún no he incluido ASP.NET core 1.0 y otras versiones principales, porque no pude encontrar las fechas de lanzamiento exactas. Puede leer más sobre las fechas de lanzamiento relacionadas con ASP.NET Core aquí: ¿ Cuándo está programado el lanzamiento de ASP.NET Core 1.0 (ASP.NET 5 / vNext)?
Puedes ver las últimas versiones de C # here
VERSION _____
ESPECIFICACIÓN DE IDIOMA ______
MICROSOFT COMPILER
C # 1.0 / 1.2 ____
diciembre 2001 ? / 2003 ? ___________
enero de 2002 ?
C # 2.0 _______
septiembre de 2005 ________________
noviembre de 2005 ?
C # 3.0 _______
mayo de 2006 _____________________
noviembre de 2006 ?
C # 4.0 _______
marzo de 2009 (borrador) ______________
abril de 2010 ?
C # 5.0; lanzado con .NET 4.5 en agosto de 2012
C # 6.0; lanzado con .NET 4.6 2015
C # 7.0; lanzado con .NET 4.7 2017
Historial de versiones de C #:
C # es un lenguaje de programación orientado a objetos simple y poderoso desarrollado por Microsoft.
C # ha evolucionado mucho desde su primer lanzamiento en 2002. C # se introdujo con .NET Framework 1.0.
La siguiente tabla enumera las características importantes introducidas en cada versión de C #.
Y la última versión de C # está disponible en las versiones de C # .
C # 1.0 con Visual Studio.NET
C # 2.0 con Visual Studio 2005
C # 3.0 con Visual Studio 2008
C # 4.0 con Visual Studio 2010
C # 5.0 con Visual Studio 2012
C # 6.0 con Visual Studio 2015
C # 7.0 con Visual Studio 2017