La expresión nameof en C#

La expresión nameof nos permite obtener un string o cadena con el nombre de un espacio de nombres, una clase, método, parámetro, propiedad, campo o variable. Esto la hace muy útil cuando estamos lanzando excepciones.

Ejemplos

Veamos un ejemplo sin usar nameof y otro usándolo:

En nuestro ejemplo, en el método DoSomething verificamos si el parámetro que recibe es nulo y de ser así lanzamos una excepción informando el nombre del parámetro que la ha causado. Hasta el momento todo bien, pero qué pasa si refactorizamos el nombre del parámetro, tendríamos que cambiar también el string de la línea 4, sin mencionar que podríamos tener algún error de escritura o en otros casos más de un parámetro que cambiar.

En el método DoSomethingElse si refactorizamos el nombre del parámetro no hay ningún problema, ya que al lanzar la excepción en la linea 15 estamos utilizando nameof que hace referencia al parámetro y no a un string «quemado» o «hard codeado».

Ejemplo usando un diccionario:

En el ejemplo anterior tenemos una clase Settings que tiene dos propiedades auto-implementadas, donde el nombre de estas es utilizado como llave en un diccionario y su contenido como valor.

Conclusión:

La expresión nameof nos genera un string basado en el nombre de una variable, tipo o un objeto y son bastante útiles al momento de trabajar con excepciones, aunque podemos usarla donde necesitemos.

Si te gustó el el artículo, tienes alguna duda o comentario escríbeme por twitter @robertlluberes