Interpolación de cadenas en C# 6 - Code Variables -->
Code Variables Code Variables

Latest news

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

Interpolación de cadenas en C# 6

imageSeguimos con esta serie sobre las novedades de C# 6, y esta vez le toca el turno a una solicitada característica que recientemente ha entrado a formar parte de las elegidas para formar parte de esta nueva versión de nuestro lenguaje favorito: la interpolación de cadenas.

Dado que aún se encuentra en desarrollo no es posible probarlo de forma sencilla, por lo que de momento tendremos que conformarnos con sacar conclusiones basándonos en la discusión de diseño en Codeplex y de la documentación existente. Avisan además que la especificación puede ser modificada, por lo que todo lo que digamos aquí aún puede variar algo, aunque mayormente será (espero) válido.

En cualquier caso, el verbo interpolar se define por la RAE como “poner algo entre cosas” o “intercalar palabras o frases en el texto de un manuscrito antiguo, o en obras y escritos ajenos”. Y esto es justamente lo que permitirá esta nueva característica: la posibilidad de introducir valores de variables o resultados de expresiones en el interior de cadenas de texto sin necesidad de usar los incómodos mecanismos habituales, como la concatenación o alguna variante de string.Format() como  en el siguiente código:



En C# 6, podríamos conseguir lo mismo de la forma que se muestra a continuación, mucho más concisa y limpia:

image

El resultado, como podremos imaginar, es idéntico a las dos alternativas mostradas anteriormente. Pero observad los dos cambios importantes que encontramos aquí:
  • Primero, los literales de texto con interpolaciones deben estar precedidos del símbolo “$”.
  • Segundo, las expresiones a incluir deben ir especificadas entre llaves.
Durante el proceso de compilación, estas cadenas y las expresiones que se encuentren en su interior serán transformadas en una llamada a string.Format(), por lo que no existen ningún tipo de penalización del rendimiento en runtime, es un mero azucarillo sintáctico destinado endulzar la vida del desarrollador.

Este paralelismo con string.Format() hace que su uso sea prácticamente idéntico, excepto que en lugar de utilizar el índice de cada parámetro utilizaríamos directamente la expresión a mostrar.

Incluso podemos usar parámetros de alineación o formato, como acostumbramos a hacer:



Si quisiéramos introducir expresiones, el único aspecto adicional a tener en cuenta es que éstas deberán estar rodeadas por paréntesis:



Como carácter de escape utilizaremos la tradicional barra invertida back-slash "\", por ejemplo, si queremos incluir un carácter de apertura de llave en la propia cadena sin que sea interpretado como el inicio de una expresión.

En definitiva, se trata de una esperada incorporación (de hecho una de las más votadas en user voice), que nos ayudará a hacer nuestro código más legible y fácil de mantener. Nada que ver, desde luego, con esas interminables llamadas a string.Format() en las que era la ordenación de los parámetros lo que determinaba en qué lugar aparecían insertados los valores.

Aún no sé cómo encajará en un escenario en el que le veo utilidad, los literales al estilo heredoc, pero supongo que conforme se vaya cerrando el desarrollo lo tendremos más claro.

Ah, y como de costumbre, me gustaría finalizar recordándoos los artículos que llevamos ya hablando de las novedades de C# 6:
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