Start Debugging

Etiqueta: csharp

199 posts · Página2de20

¿Qué es Span<T> en C# y cuándo hace realmente más rápido tu código?
Span<T> es un ref struct que solo vive en la pila y apunta a memoria que ya posees, así que no tiene asignación de respaldo. Acelera el código en exactamente tres situaciones: reemplazar un búfer en el heap con stackalloc, segmentar sin copiar y bucles ajustados donde el JIT elimina las comprobaciones de límites. En cualquier otro caso no cambia nada, y cruzando un await no compila.
¿Qué es el atributo DynamicallyAccessedMembers?
DynamicallyAccessedMembers le indica al trimmer de .NET y al compilador AOT cuáles miembros de un Type alcanzas por reflexión, para que se conserven en lugar de ser eliminados. Convierte una silenciosa MissingMethodException en runtime en una advertencia IL2070 en tiempo de compilación. Esto es lo que hace el atributo, cómo funciona el análisis de flujo de datos detrás de él y cómo anotar correctamente parámetros, campos y parámetros de tipo genéricos.
2026-06-20 csharpdotnetasync
Qué es ValueTask<T> y cuándo vale la pena
ValueTask y ValueTask<T> son structs que permiten a un método asíncrono devolver un resultado sin asignar un Task en el heap cuando se completa de forma síncrona. La ganancia es una asignación menos en rutas calientes que normalmente terminan sin esperar. El costo es un contrato estricto de esperar-una-sola-vez. Esto es lo que el tipo realmente es, cómo funciona, y el conjunto reducido de casos donde se gana su lugar.
Anterior Siguiente