Expression-bodied Members en C#: Guía Completa con Ejemplos
Si quieres ser un programador de fuste, lee este artículo y aprende las nuevas características del lenguaje.

Hey dev, si quieres ser un desarrollador de fuste, entonces debes conocer muy bien las características del lenguaje así que en esta ocasión te enseñaré una característica llamada Expression-bodied members (miembros con cuerpo de expresión) son una característica del lenguaje C# que permite escribir métodos, propiedades y otros miembros de clase de forma más concisa utilizando el operador => y que están disponibles desde la versión C# 6 y 7.

Si quieres aprender más del lenguaje C# y sus cambios versión por versión aquí es el lugar.

¿Qué son los Expression-bodied Members?

Los expression-bodied members te permiten escribir métodos o propiedades cuyo cuerpo consiste en una sola expresión. En lugar de usar las llaves {} y la instrucción return, puedes utilizar una sintaxis simplificada con el operador flecha (=>).

Esta característica hace el código más legible y compacto, especialmente para miembros que ejecutan una única acción o devuelven un valor simple.

Puedes revisar la documentación oficial de Microsoft aquí.

A continuaión te mostraré 5 ejemplos de expression-bodied members, comparados con su versión clásica usando llaves {} y return, cuando aplica. Esto te permitirá ver con claridad cómo se simplifica el código con esta característica de C#. Empecemos! 🔥

Método con cuerpo de expresión

La versión tradicional digamos sería:

public int Sumar(int a, int b)
{
    return a + b;
}

La versión con expression-bodied es:

public int Sumar(int a, int b) => a + b;

Propiedad de solo lectura

Y esta la que siempre se ha usado:

public string NombreCompleto
{
    get
    {
        return $"{Nombre} {Apellido}";
    }
}

Esta es la versión que usa expression-body:

public string NombreCompleto => $"{Nombre} {Apellido}";

Constructor

Tradicionalmente cómo se hace? así...

public Persona(string nombre)
{
    Nombre = nombre;
}

Y la versión con expresión es así:

public Persona(string nombre) => Nombre = nombre;

Propiedad con set

Una propiedad normalmente se hace esto:

private int _edad;
public int Edad
{
    get
    {
        return _edad;
    }
    set
    {
        _edad = value;
    }
}

Con expression quedaría así:

private int _edad;
public int Edad
{
    get => _edad;
    set => _edad = value;
}

Indexador

Con la versión clásica:

private int[] datos = new int[5];
public int this[int index]
{
    get
    {
        return datos[index];
    }
}

De la manera nueva:

private int[] datos = new int[5];
public int this[int index] => datos[index];

También se puede usar en destructores o finalizadores pero son mucho menos conocidos y utilizados por eso no puse ejemplos de eso aquí, pero es importante que lo sepas 😉

Ventajas y recomendaciones

  • Código más limpio y corto.
  • Ideal para operaciones simples.
  • Fácil de leer en clases DTO, entidades o controladores.
  • No es recomendable para lógica compleja: si necesitas múltiples líneas o validaciones, usa el cuerpo completo.
  • Sólo puedes usarlo cuando el cuerpo es una única expresión válida.

Si esta entrada te ha gustado, entonces ya sabes qué hacer dev, compártela! 👌🏼

Créditos de imagen de portada: Basado en Foto de Rachel Hisko en Unsplash

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *