# data[].attributes.body
Se desarrolla .NET framework mediante un compilador de código llamado Simple managed

# data[].attributes.body
Anders Hejlsberg forma equipo para diseñar un lenguaje de programación llamado"cool"

# data[].attributes.body
El lenguaje es renombrado a "C#" en professional developers conference.

# data[].attributes.body
Versión C# 1.0
Era una alternativa viable a Java en la plataforma Windows.
Contiene
-Clases
-Estructuras
-Interfaces
-Eventos
-Propiedades
-Delegados
-Atributos
-Declaraciones

# data[].attributes.body
Versión C# 1.1 Y C# 1.2
Transportado por visual Studio.NET.

# data[].attributes.body
Versión C# 2.0
Mejoras:
-Tipos parciales
-Métodos anónimos
-Tipos de valores
-Iteradores
-Genéricos

# data[].attributes.body
Versión C# 3.0
Mejoras:
-Tipos de anónimos
-Arboles de expresión
-Métodos de extensión
-Variables locales escritas implícitamente
-Métodos parciales
-Inicializadores de objetos y colecciones

# data[].attributes.body
Versión C# 4.0
Mejoras:
-Unión dinámicas
-Argumentos opcionales
-Covariante y contravariante general
-Tipos de interoperabilidad integrada

# data[].attributes.body
Versión C# 5.0
Se centró en otro concepto de lenguaje innovador: el modelo async y await para la programación asincrónica.
Mejoras:
-Miembros asincrónica
-Atributos de información del llamador

# data[].attributes.body
Versión C# 6.0
Característica innovadora y predominante
Mejoras:
-Importaciones estáticas
-Filtros de excepciones
-Propagador de null
-Operador nameof
-Miembros de cuerpo de expresión
-Interpolación de cadenas

# data[].attributes.body
Versión C# 7.0
Mejoras:
-Tuplas y deconstrucción
-Coinciencia de patrones
-Funciones locales
-Devoluciones y variables locales ref
-Variables out

# data[].attributes.body
Versión C# 7.1
Mejoras:

asyncMain Método

El punto de entrada de una aplicación puede tener el modificador async.

Expresiones literarias default

Se pueden usar expresiones literales predeterminadas en expresiones de valor predeterminadas cuando el tipo de destino se pueda inferir.

Nombres de elementos de tupla inferidos

En muchos casos, los nombres de elementos de tupla se pueden deducir de la inicialización de la tupla.

Coincidencia de patrones en parámetros de tipo genérico

Puede usar expresiones de coincidencia de patrones en variables cuyo tipo es un parámetro de tipo genérico.

# data[].attributes.body
Versión C# 7.2
Mejoras:
-Inicializadores en matrices stackalloc
-Uso de instrucciones fixed con cualquier tipo que admita un patrón
-Argumentos con nombres no finales
-Modificador de acceso private protected
-Acceso de campos fijos sin anclar
-Reasignación de variables locales ref
-Declaración de tipos readonly struct para indicar que una estructura es fija y que debería pasarse como parámetro in a los métodos de su miembro.
-Uso del modificador ref readonly en las devoluciones de método para indicar que un método devuelve su valor mediante una referencia, pero que no permite operaciones de escritura en el objeto.

# data[].attributes.body
Versión C# 7.3
Mejoras:
-Puede tener acceso a campos fijos sin anclar
-Puede volver a asignar variables locales ref
-Puede usar inicializadores en matrices stackalloc
-Puede usar instrucciones fixed con cualquier tipo que admita un patrón
-Puede usar restricciones más genéricas
-Puede probar == y != con los tipos de tupla
-Puede usar variables de expresión en más ubicaciones
-Puede asociar atributos al campo de respaldo de las propiedades autoimplementadas
-Se ha mejorado la resolución de métodos cuando los argumentos difieren por in
-Ahora, la resolución de sobrecarga tiene menos casos ambiguos

Las nuevas opciones del compilador son:
-publicsign para habilitar la firma de ensamblados de software de código abierto (OSS)
-pathmap para proporcionar una asignación para los directorios de origen

# data[].attributes.body
Versión C# 8.0
Mejoras:
-Miembros de solo lectura
-Métodos de interfaz predeterminado
-Declaraciones using
-Funciones locales estáticas
-Índices y rangos
-Asignación de uso combinado de NULL
-Stacklloc en expresiones anidadas
-Mejora de las cadenas textuales interpoladas

# data[].attributes.body
Versión C# 9.0
Mejoras:
-Registros
-Establecedores de nivel superior
-Mejores de coincidencia de patrones
-Rendimiento e interoperabilidad
-Características de ajustes y finalización
-Compatibilidad de generadores de códigos

# data[].attributes.body
Versión C# 10.0
Mejoras:
-Structs de registro
-Mejoras de tipos de estructura
-Directivas global using
-Mejoras de expresiones lambda
-Patrones de propiedades extendidos
-Se permite cadenas interpoladas const
-Pragma #line mejorado
-Atributo CalledArgumentExpression
-Los tipos de registro pueden sellar ToSring()