Start Debugging

Características de C# 14

Lo que realmente llegó en C# 14, con código.

Este pilar indexa todo lo que he escrito sobre las características del lenguaje C# 14: tipos unión, constructores y eventos partial, tipos de extensión, y las pequeñas mejoras ergonómicas que son fáciles de pasar por alto en las notas oficiales de la versión.

Qué leer primero

Empieza con los posts sobre tipos unión y miembros partial si vienes de C# 12 - son los cambios de comportamiento más grandes. Todo lo demás es calidad de vida.

Qué hay en esta página

La lista de abajo recopila automáticamente los posts etiquetados con alguno de: c# 14, csharp 14, c#, csharp, c# language. Los más recientes primero.

Índice (138 posts)

2026 / 05

2026 / 04

2026 / 02

2026 / 01

2025 / 04

2025 / 01

  • Rendimiento en .NET: ToList vs ToArray

    .NET 9 mejora considerablemente el rendimiento de ToArray usando InlineArray, haciéndolo más rápido y eficiente en memoria que ToList. Mira los benchmarks comparando .NET 8 vs .NET 9.

  • C# 13: Usa colecciones params con cualquier tipo de colección reconocido

    C# 13 extiende el modificador params más allá de los arrays para soportar Span, ReadOnlySpan, IEnumerable y otros tipos de colecciones, reduciendo el código repetitivo y mejorando la flexibilidad.

  • Cómo cambiar a C# 13

    Cómo arreglar 'Feature is not available in C# 12.0' y cambiar tu proyecto a C# 13 modificando el target framework o configurando LangVersion en tu archivo .csproj.

2024 / 12

  • Qué hay de nuevo en C# 14.0

    Un resumen de todas las nuevas características de C# 14.0, incluyendo la palabra clave field, los miembros de extensión, la asignación condicional de null, las conversiones implícitas de span y más.

  • Historial de versiones del lenguaje C#

    La evolución de C# lo ha transformado en un lenguaje moderno y de alto rendimiento. Esta guía recorre cada hito importante. Los primeros años (C# 1.0 - 1.2). C# se lanzó en 2002 como lenguaje principal para .NET Framework. Se sentía como Java pero con un enfoque en el desarrollo en Windows. La versión 1.2 llegó poco después con pequeñas...

2023 / 11

2023 / 10

  • C# Cómo marcar características como experimentales

    A partir de C# 12, un nuevo ExperimentalAttribute te permite marcar tipos, métodos, propiedades o ensamblados como experimentales. Aprende a usarlo con diagnosticId, etiquetas pragma y UrlFormat.

  • C# parámetros ref readonly

    El modificador ref readonly en C# ofrece una forma más transparente de pasar referencias de solo lectura. Aprende cómo mejora al modificador in con mejores restricciones y visibilidad para quien llama.

  • C# ¿Cómo barajar un array?

    La forma más sencilla de barajar un array en C# es usando Random.Shuffle, introducido en .NET 8. Funciona in-place tanto con arrays como con spans.

  • C# ¿Qué es una NullReferenceException y cómo arreglarla?

    Aprende qué provoca una NullReferenceException en C#, cómo depurarla y cómo prevenirla usando comprobaciones de null, el operador null-conditional y los tipos de referencia anulables.

  • Añadir/quitar TypeInfoResolver de un JsonSerializerOptions existente

    Aprende a añadir o quitar instancias de TypeInfoResolver en un JsonSerializerOptions existente usando la nueva propiedad TypeInfoResolverChain en .NET 8.

  • C# 12 Interceptors

    Aprende sobre los interceptors de C# 12, una característica experimental del compilador en .NET 8 que te permite reemplazar llamadas a métodos en tiempo de compilación usando el atributo InterceptsLocation.

2023 / 09

2023 / 08

  • C# 12 Inline arrays

    Los inline arrays te permiten crear un array de tamaño fijo dentro de un tipo struct. Esa struct, con un buffer inline, ofrece un rendimiento comparable al de un buffer unsafe de tamaño fijo. Los inline arrays están pensados sobre todo para ser utilizados por el equipo del runtime y por algunos autores de librerías para mejorar el rendimiento en ciertos escenarios. Probablemente...

  • C# 12 expresiones de colección

    C# 12 introduce una nueva sintaxis simplificada para crear arrays. Tiene este aspecto: Es importante señalar que el tipo del array hay que especificarlo de forma explícita, por lo que no puedes usar var para declarar la variable. De forma similar, si quisieras crear un Span<int>, puedes hacer: Arrays multidimensionales Las ventajas de esta sintaxis concisa...

  • C# ¿Cómo esperar a que termine un proceso?

    Puedes usar el método WaitForExit para esperar a que el proceso se complete. Tu código esperará de forma síncrona hasta que el proceso termine y entonces continuará la ejecución. Veamos un ejemplo: El código anterior inicia un nuevo proceso cmd.exe y ejecuta el comando timeout 5. La llamada a process.WaitForExit() obligará a tu programa...

  • C# 12 alias para cualquier tipo

    La directiva using alias se ha flexibilizado en C# 12 para permitir crear alias de cualquier tipo, no solo de tipos con nombre. Esto significa que ahora puedes crear alias de tuplas, punteros, tipos de array, tipos genéricos, etc. Así, en lugar de usar la forma estructural completa de una tupla, puedes ponerle un alias corto y descriptivo...

  • ¿Existe en C# un equivalente a la sentencia With...End With?

    La sentencia With...End With de VB te permite ejecutar una serie de instrucciones que se refieren repetidamente a un mismo objeto, usando una sintaxis simplificada para acceder a sus miembros. ¿Existe un equivalente en C#? No. Lo más parecido serían los inicializadores de objetos, pero solo sirven para crear instancias nuevas.

2023 / 07

  • C# 12 - Constructores primarios

    A partir de C# 12, es posible definir un constructor primario en clases y structs. Los parámetros se colocan entre paréntesis justo después del nombre del tipo. Estos parámetros tienen un alcance amplio: pueden inicializar propiedades o campos, servir como variables en métodos o funciones locales, y pasarse a un constructor base.

2023 / 06

  • Cómo empezar a programar con C#

    Una guía para principiantes sobre cómo empezar a programar en C#, desde la instalación de Visual Studio hasta escribir tu primer programa y encontrar recursos para aprender.

  • Cómo cambiar a C# 12

    Resuelve los errores de versión de lenguaje C# 12 actualizando tu target framework a .NET 8 o configurando LangVersion en tu archivo .csproj.

  • Novedades de C# 12

    Una visión general de las nuevas características de C# 12, incluyendo constructores primarios, parámetros lambda por defecto, expresiones de colección, inline arrays y más.

2023 / 05

2023 / 03

2020 / 11

2020 / 05

  • C# using var (using declaration)

    Usa las using declarations de C# 8 (`using var`) para liberar objetos IDisposable sin llaves anidadas. Sintaxis, reglas de ámbito y cuándo preferir bloques `using`.

2020 / 04

2019 / 01

2013 / 10

2013 / 06

2013 / 05

2012 / 01

Todos los pilares Inicio