Open Menu dzosoft
Close Menu dzosoft

   TODO SOBRE INFORMÁTICA Y TECNOLOGÍA


                             




Japanese ritual of tranquility and... slim figure!

Publish perfectly-optimized content in 1-click



 
 
 

C# Versión 9.0

 
 
C# Versión 9.0
 

Publicado en noviembre de 2020


C# 9 se lanzó con .NET 5. Es la versión de lenguaje predeterminada para cualquier ensamblado destinado a la versión .NET 5. Contiene las siguientes características nuevas y mejoradas:

Registros
Configuradores de solo inicio
Declaraciones de nivel superior
⮚Mejoras en la coincidencia de patrones: patrones relacionales y patrones lógicos
Rendimiento e interoperabilidad< /a>
     ⮚Enteros de tamaño nativo
     ⮚Punteros de función
     ⮚Suprimir la emisión del indicador localsinit
     ⮚Inicializadores de módulo
     ⮚Nuevas funciones para métodos parciales
Funciones de ajuste y acabado

     ⮚Nuevas expresiones escritas en destino
     ⮚funciones estáticas anónimas
     ⮚Expresiones condicionales escritas en destino
     ⮚Tipos de retorno covariantes
     ⮚Extensión GetEnumerator compatible con bucles foreach
     ⮚Parámetros de descarte de Lambda
     ⮚Atributos de funciones locales

C# 9 continúa con tres de los temas de versiones anteriores: eliminar la ceremonia, separar los datos de los algoritmos y proporcionar más patrones en más lugares.

Las declaraciones de nivel superior significan que su programa principal es más sencillo de leer. Hay menos necesidad de ceremonias: un espacio de nombres, una clase de programa y Main() son innecesarios.

La introducción de registros proporciona una sintaxis concisa para los tipos de referencia que siguen la semántica de valores para la igualdad. Utilizará estos tipos para definir contenedores de datos que normalmente definen un comportamiento mínimo. Los configuradores de solo inicio brindan la capacidad de realizar mutaciones no destructivas (con expresiones) en los registros. C# 9 también agrega tipos de retorno covariantes para que los registros derivados puedan anular los métodos virtuales y devolver un tipo derivado del tipo de retorno del método base.

Las capacidades de coincidencia de patrones se han ampliado de varias maneras. Los tipos numéricos ahora admiten patrones de rango. Los patrones se pueden combinar usando y, o, y no patrones. Se pueden agregar paréntesis para aclarar patrones más complejos:

C# 9 incluye nuevas mejoras en la coincidencia de patrones:

⮚Los patrones de tipo coinciden con un objeto coincide con un tipo particular
⮚Los patrones entre paréntesis refuerzan o enfatizan la precedencia de las combinaciones de patrones
⮚Conjuntivo y patrones requieren que ambos patrones coincidan
⮚Disyuntivo o patrones requieren que cualquiera de los patrones coincida
⮚Los patrones no negados requieren que un patrón no coincida
⮚Los patrones relacionales requieren que la entrada sea menor, mayor que, menor o igual, o mayor o igual que una constante determinada.

Estos patrones enriquecen la sintaxis de los patrones. Considere estos ejemplos:

public static bool IsLetter(this char c) =>
    c is >= 'a' and <= 'z' or >= 'A' and <= 'Z';


Con paréntesis opcionales para dejar claro que y tiene mayor prioridad que o:

public static bool IsLetterOrSeparator(this char c) =>
    c is (>= 'a' and <= 'z') or (>= 'A' and <= 'Z') or '.' or ',';


Uno de los usos más comunes es una nueva sintaxis para una verificación nula:

if (e is not null)
{
    // ...
}

Cualquiera de estos patrones se puede utilizar en cualquier contexto donde se permitan patrones: expresiones de patrón

is

, expresiones de cambio, patrones anidados y el patrón de la etiqueta

case

de una declaración

switch

.

Otro conjunto de características admite la informática de alto rendimiento en C#:

Los tipos

nint

y

nuint

modelan los tipos de enteros de tamaño nativo en la CPU de destino.
punteros de función proporcionan delegados funcionalidad similar evitando al mismo tiempo las asignaciones necesarias para crear un objeto delegado.
La instrucción

localsinit

se puede omitir para guardar instrucciones.

 

Rendimiento e interoperabilidad

 

Otro conjunto de mejoras admite escenarios en los que los generadores de código agregan funcionalidad:

Inicializadores de módulo son métodos que el tiempo de ejecución llama cuando se carga un ensamblado.
Métodos parciales admiten nuevos modificadores accesibles y tipos de devolución no nulos. En esos casos, se debe proporcionar una implementación.

 

Características de ajuste y acabado.

 

C# 9 agrega muchas otras pequeñas características que mejoran la productividad del desarrollador, tanto en la escritura como en la lectura de código:

⮚ Expresiones

nuevas

de tipo objetivo

static++p funciones anónimas

⮚ Expresiones condicionales de tipo objetivo
⮚ Extensión

GetEnumerator()

compatible con bucles

foreach

⮚ Las expresiones lambda pueden declarar parámetros de descarte
⮚ Los atributos se pueden aplicar a funciones locales.

La versión C# 9 continúa el trabajo para mantener C# como un lenguaje de programación moderno y de propósito general. Las funciones siguen siendo compatibles con cargas de trabajo y tipos de aplicaciones modernos.

Leave comment
          

Guardar apodo y correo electrónico en este navegador para la próxima vez.



Cargando...     

Nord VPN