Rendimiento de nameof en C# 6 - Code Variables -->
Code Variables Code Variables

Latest news

جاري التحميل ...

Rendimiento de nameof en C# 6

imageHace unos días mostrábamos por aquí el nuevo operador nameof que acompañará a C# 6, y cuya función, resumidamente, es obtener el nombre a nivel de código de la variable o miembro a la que se aplica:



En los comentarios de este post, el amigo Kiquenet se preguntaba qué incidencia podía tener el uso de este operador en el rendimiento de nuestras aplicaciones, y esa duda es la que vamos a responder muy rápidamente ahora.

Se podía intuir que la incidencia sería cero porque la resolución del nombre tenía toda la pinta de ser realizada en tiempo de compilación y, por tanto, los usos del operador nameof serían transformados en una constantes de cadena, pero la verdad es que siempre quedaba la duda de si había algún tipo de “magia” adicional por detrás.

Por esta razón, he realizado una prueba muy sencilla. Primero, implementando y compilando el siguiente código:



Seguidamente, descompilando la .dll resultante con ayuda de dotPeek, podemos ver que el código que finalmente ha sido incluido en el ensamblado es el siguiente:



Aunque la optimización ha hecho algún estrago, creo que queda claro que la llamada a nameof es sustituida en tiempo de compilación por una constante de cadena (en este caso, “number”). Por tanto, ahora sí podemos asegurar que el uso de nameof ni tiene incidencia alguna sobre el rendimiento en tiempo de ejecución.

Si queréis conocer más sobre el C# que se avecina, no os perdáis los posts anteriores de la serie:
Publicado en Variable not found.

Comments



If you like the content of our blog, we hope to stay in constant communication, just enter your email to subscribe to the blog's express mail to receive new blog updates, and you can send a message by clicking on the button next ...

إتصل بنا

About the site

author Code Variables  Artículos, tutoriales, trucos, curiosidades, reflexiones y links sobre programación web ASP.NET Core, MVC, Blazor, SignalR, Entity Framework, C#, Azure, Javascript...

Learn more ←

Blog visitors

Blog stats

All Copyrights Reserved

Code Variables

2019